Я включил некоторый скрипт в мой файл php.
Он читает канал Pusher и выполняет несколько действий, когда на указанном канале появляется новое событие.
Если я запускаю в браузере:
Http: /localhost/pusher.php
и пусть он открывает соединение толкателя продолжает читать, однако, если я закрою его ИЛИ запустить в командной строке:
php pusher.php
скрипт открывается и заканчивается менее чем за одну секунду, закрывая соединение и не читая будущие записи.
Вопрос: Как проще запустить (толкать) JS и держать его открытым и читать из командной строки?
<?php require 'vendor/autoload.php'; ?>
<html>
<script src="//js.pusher.com/2.2/pusher.min.js"></script> <script src="http://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script><script type="text/javascript" language="javascript"> var pusher = new Pusher('key'); var channel = pusher.subscribe('betfair');
channel.bind('bets', function(data) {
var a = data.market_id;
var b = data.selection;
var c = data.stake;
var d = data.odd;
var e = data.bet_type;record(a, b, c, d, e);
});function record(a,b,c,d,e) { console.log(a);
jQuery.ajax({
type: "POST",
url: 'time2.php',
data: {a, b , c , d, e},
success:function(record) {
console.log(data);
}
});
}
</script> </html>
JavaScript является почти строго клиентским языком (за исключением таких вещей, как Rhino, nodeJS и т. Д.), То, что вы пытаетесь, зависит от среды, предоставляемой веб-браузером, или, более конкретно, от виртуальной машины, подключенной к браузеру, который интерпретирует JS. Возможно, вы слышали о V8, например, который используется Chrome.
Когда вы запускаете скрипт через командную строку, он просто отображает этот JS. Ничто на самом деле не разбирает его.
Вам нужно посмотреть на PHP HTTP-клиент, как завивать (или, возможно, посмотрите на пропивать Эти дни).
Что касается длинного разрушающего процесса на стороне сервера … Эти задачи обычно выполняются тем, что люди называют daemon
, Может быть, прочитайте это, чтобы начать на эту тему: Запустите php скрипт как процесс демона Зная, что Google для вас, вы должны найти много по этой теме.
Других решений пока нет …