3D-GRAF
Новичок
Не удается заставить работать WebSocket сервер на phpDaemon.
phpd start выдает:
[PHPD] M#11587 IPCManager instantiated.
[PHPD] W#11588 WebSocketWorker instantiated.
[PHPD] W#11588 WebSocketWorker up.
[PHPD] ready
[PHPD] W#11588 WebSocketServer instantiated.
Код сервера:
Но вот запросы не приходят.
phpd start выдает:
[PHPD] M#11587 IPCManager instantiated.
[PHPD] W#11588 WebSocketWorker instantiated.
[PHPD] W#11588 WebSocketWorker up.
[PHPD] ready
[PHPD] W#11588 WebSocketServer instantiated.
Код сервера:
Конфиг:<?php
class WebSocketWorker extends AppInstance {
/**
* Called when the worker is ready to go.
* @return void
*/
public function onReady() {
Daemon::log("ready");
if ($this->WS = Daemon::$appResolver->getInstanceByAppName('WebSocketServer')) {
$this->WS->addRoute('test',function ($client)
{
return new ExampleWebSocketSession($client);
});
}
}
}
class ExampleWebSocketSession extends WebSocketRoute {
/**
* Called when new frame received.
* @param string Frame's contents.
* @param integer Frame's type.
* @return void
*/
public function onFrame($data, $type) {
Daemon::log("Frame");
if ($data === 'ping') {
$this->client->sendFrame('pong', WebSocketSERVER::STRING,
function($client) {
Daemon::log('ExampleWebSocket: \'pong\' received by client.');
}
);
}
}
}
Клиент:# Config file
user www;
group www;
max-workers 1;
min-workers 1;
start-workers 1;
max-requests 1m;
max-idle 0;
WebSocketWorker {
enable 1;
listen "tcp://0.0.0.0";
listen-port 8047;
privileged;
}
# other applications...
include conf.d/*.conf;
В лог попадает запись [PHPD] ready, значит сам сервер запускается.<script type="text/javascript">
if ("WebSocket" in window) {
var ws = new WebSocket("ws://site.ru:8047/test");
ws.onopen = function() {
ws.send("ping");
};
ws.onmessage = function (evt) {
alert('Получили сообщение: ' + evt.data );
};
ws.onclose = function() {
// websocket закрыт.
};
} else {
alert('Ваш браузер не поддерживает вебсокеты');
}
</script>
Но вот запросы не приходят.