Modx. Работа с websocket при помощи workerman
Установила Workerman для работы с вебсокетами, сделала тестовый пример из документации https://github.com/walkor/workerman-manual/blob/master/english/getting-started/simple-example.md (Example 2). Адреса 127.0.0.1 и 0.0.0.0 поменяла на свой домен. Ввела команду в консоли (в папке с тестовыми файлами) php ws_test.php start, ошибок не выдает. Но когда перехожу по адресу путь_до_js-теста/test.php, страница загружается, но соединяться с сервером не хочет. Содержимое ws_test.php
<?php
use Workerman\Worker;
require_once './Workerman/Autoloader.php';
// Create A Worker and Listens 2346 port, use Websocket protocol
$ws_worker = new Worker("websocket://мой_хост:2346");
// 4 processes
$ws_worker->count = 4;
// Emitted when new connection come
$ws_worker->onConnect = function($connection)
{
// Emitted when websocket handshake done
$connection->onWebSocketConnect = function($connection)
{
echo "New connection\n";
};
};
// Emitted when data is received
$ws_worker->onMessage = function($connection, $data)
{
// Send hello $data
$connection->send('hello ' . $data);
};
// Emitted when connection closed
$ws_worker->onClose = function($connection)
{
echo "Connection closed";
};
// Run worker
Worker::runAll();
Содержимое test.php
<div>Hello World!</div>
<script type="text/javascript">
ws = new WebSocket("ws://мой_хост:2346");
ws.onopen = function() {
alert("connection success");
console.log(111111111);
ws.send('tom');
};
ws.onmessage = function(e) {
alert("recv message from server:" + e.data);
console.log(2222222);
};
</script>
В консоли тестовые цифры не отображаются, то бишь соединение не установлено. Что делать? Как установить соединение между клиентом и сервером?
Ответы (1 шт):
Все, вопрос решился. Хостинг просто не позволяет использовать программы, работающие в фоновом режиме.