phpDaemon

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.

Код сервера:
<?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;
Клиент:

<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>
В лог попадает запись [PHPD] ready, значит сам сервер запускается.
Но вот запросы не приходят.
 

3D-GRAF

Новичок
Всё, удалось :)
Ещё вопросец, можно ли организовать UDP сервер с помощью phpDaemon? Google молчит.
 
Сверху