Сделал по данному примеру https://gostash.it/ru/stashes/1533-podklucenie-k-serveru-websocket-iz-web-prilozenia Сервер запускается,
public function get () {
$eventModel = [
'subscribeKey' => 'eventMonitoring',
'data' => 'eventData' . rand(1,100)
];
Book::pushEventToSocket($eventModel);
var_dump($eventModel);
}
данные отправляю, в pushEventToSocket данные приходят, а вот как проверить что они до сервера дошли ?
static function pushEventToSocket(array $eventModel)
{
$context = new \ZMQContext();
$socket = $context->getSocket(\ZMQ::SOCKET_PUSH, 'desktop');
if($socket instanceof \ZMQSocket)
{
// Здесь тоже передаём идентификатор, чтобы в push классе мы смогли получить объект topic
$eventModel['subscribeKey'] = 'eventMonitoring';
$eventData = json_encode($eventModel);
$socket->connect("tcp://127.0.0.1:5555");
$socket->send($eventData);
file_put_contents('mekas1.txt', $eventData, FILE_APPEND);
}
}
Сервер
public function actionPushServer($port=5555)
{
$loop = Factory::create();
// Класс, который реализуем ниже.
$pusher = new EventPusher;
// Listen for the web server to make a ZeroMQ push after an ajax request
$context = new Context($loop);
$pull = $context->getSocket(\ZMQ::SOCKET_PULL);
// Binding to 127.0.0.1 means the only client that can connect is itself
$pull->bind('tcp://127.0.0.1:'.$port);
$pull->on('message', array($pusher, 'onPushEventData'));
// Set up our WebSocket server for clients wanting real-time updates
$webSock = new Server($loop);
// Binding to 0.0.0.0 means remotes can connect
$webSock->listen(8080, '0.0.0.0');
$webServer = new IoServer(
new HttpServer(
new WsServer(
new WampServer(
$pusher
)
)
),
$webSock
);
$loop->run();
}
Подписка клиента в onSubscribe происходит. при создание события данные pushEventToSocket получает, а вот доходят они до сервера я не знаю как отследить. Так же не знаю обрабатывает ли сервер входящие данные и вызывает функцию $pull->on('message', array($pusher, 'onPushEventData')); которая возвращает данные подписанным клиентам.
Я нашел решение , просто никогда не разрабатывать на windows, поставил ubuntu 16.04 настроил и все работает просто превосходно . А так скорее всего или какой то софт блокировал отправку сообщений по tcp т.к функций find и connect работала ,проблема именно в том что сообщение не доходит, и соответственно сервер не может его принять.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Добрых времен суток и тд! Такая проблема: Я полнейший камень в PHP, просто дубИмеется следующая проблема - ОШИБКИ: