Я недавно настроил сервер WebSocket на одном из моих домашних компьютеров и пытаюсь заставить его работать через удаленное соединение.Я использовал следующее решение PHP WebSocket (поддерживает Draft 75 и 76):
PHP Websocket Server Нико Кайзера
Из локального соединения демонстрация работает без нареканий.Я могу использовать демо на стороне клиента с localhost, мой DNS указывает на мою домашнюю машину, и (самая странная часть) - на удаленный PHP-хост, на котором размещены ТОЛЬКО клиентские файлы.Javascript указывает на мою домашнюю машину для WebSocket.
Проблема возникает, когда я использую другую машину, не основанную дома.Даже когда я иду по тому же URL, WebSocket не будет подключаться.Итак, вот что происходит:
URL, указывающий на домашний компьютер - Работает только из дома.Страница загружается с других компьютеров, но WebSocket не подключается.http://whoisryannystrom.com/tests/socket/client - Работает только дома.Страница загружается с других компьютеров, но WebSocket не подключается.
У меня есть адрес WebSocket в файле client.html, настроенном так (как я знаю, правильно).Это то же самое в html-файле локального хоста и удаленного клиента.
var server = new WebPush('ws://rnystrom.mine.nu:8000/echo');
Тогда я немного запутался в отношении того, какие адреса должны иметь PHP-файлы сервера.Вот что у меня сейчас:
Основной сервер php (server.php):
$server = new \WebSocket\Server('rnystrom.mine.nu', 8000);
А затем в \ server \ lib \ WebSocket (я думаю, файлы классов WebSocket...) Я использую 'localhost'.Я пробовал «rnystrom.mine.nu» и «localhost», оба работают на домашнем компьютере, и ни один из них не работает удаленно, так что, похоже, это не имеет значения.Я считаю, что $ host используется в конструкторе или что-то.Основной server.php определяет, что такое $ host.
Я в растерянности.Все, что я действительно хочу сделать, - это начать экспериментировать с WebSockets, но я не могу даже начать, если не могу подключиться удаленно!Не интересно иметь удаленный рабочий стол каждый раз, когда я хочу отредактировать или посмотреть свою работу!