Клиент Pusher подписан и запускается из командной строки

Я интегрировал некоторый скрипт в свой файл 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>

person ace    schedule 28.04.2015    source источник
comment
Вы не можете запускать JavaScript таким образом. Вы знакомы с HTTP-клиентами, такими как cURL?   -  person ficuscr    schedule 29.04.2015
comment
запустите клиент pusher node.js... вы можете поговорить с ним из php, если это необходимо.   -  person dandavis    schedule 29.04.2015
comment
Я пробовал это, но безуспешно. На данный момент у меня открыт браузер 24/7 с живым соединением. Ищем решение как можно скорее   -  person ace    schedule 29.04.2015


Ответы (1)


JavaScript почти строго является языком на стороне клиента (за исключением таких вещей, как Rhino, nodeJS и т. д.), вещи, которые вы пытаетесь использовать, зависят от среды, предоставляемой веб-браузером, или, точнее, от виртуальной машины, подключенной к браузеру, которая интерпретирует JS. Возможно, вы слышали о V8, например, который используется Chrome.

Когда вы запускаете скрипт через командную строку, он просто отображает этот JS. На самом деле ничего не анализирует.

Вам нужно посмотреть HTTP-клиент PHP, такой как cURL (или, возможно, посмотреть на жрать в наши дни).

Что касается долгого процесса на стороне сервера... Эти задачи обычно выполняются тем, что люди называют daemon. Возможно, прочитайте это, чтобы начать работу по этой теме: Запустить php-скрипт как процесс демона Зная, что искать в Google, вы должны найти много по этой теме.

person ficuscr    schedule 28.04.2015