Другие хосты не могут подключиться к серверу websocket на моем хосте - PullRequest
1 голос
/ 10 августа 2011

Прежде всего, извините за мой плохой английский:)

Мое Java-приложение (сервер многопользовательской игры) использует этот пакет для связи с веб-приложением в браузере клиента с помощью веб-сокетов: https://github.com/TooTallNate/Java-WebSocket

Я столкнулся с проблемой при запуске приложения: только я могу подключиться к серверу websocket, клиенты на других хостах не могут этого сделать.В браузере я устанавливаю соединение как обычно, адрес здесь, безусловно, правильный:

new WebSocket("ws://"+serverIp+":8787");

Когда я подключаюсь со своего собственного хоста к серверу websocket, работающему на том же хосте, он работает отлично.Когда другие хосты пытаются соединиться со мной, соединение не устанавливается: в обозревателе объекты WebSocket .readyState имеет значение 0 (хотя должно быть 1), и даже сервер не получает никаких рукопожатий (нет вывода из onClientOpen в консоли сервера, я дажепопытался получить какие-либо выходные данные от определенных методов класса WebSocketServer).

Другие хосты все еще получают, например, статическое содержимое веб-приложения с веб-сервера на 80-м порту того же хоста.Проблема не в том, что закрытый порт 8787: я проверил, он открыт.

В чем может быть причина того, что другой хост не может подключиться к моему серверу веб-сокетов?

1 Ответ

3 голосов
/ 10 августа 2011

WebSockets использует систему разрешений между источниками. Возможно, вам придется указать серверу WebSocket, что он принимает соединения не только с локального хоста. Проверка Происхождения происходит во время рукопожатия WebSocket, которое, вероятно, происходит до onclientOpen.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...