Соедините два устройства с помощью веб-сокетов
Я новичок в веб-сокетах, извините, если ответ на мой вопрос слишком очевиден.
Я использую websocket-sharp, так как моей целью является создание клиента Unity3D, который подключается к серверу. (На самом деле я хочу построить его для платформы webGL, поэтому клиент будет написан на javascript). На данный момент и клиент, и сервер написаны на C#.
При компиляции на localhost он отлично работает, в том числе с несколькими клиентами, а также через безопасное соединение с использованием самозаверяющего сертификата. Это также работает нормально, если клиент подключается к эхо-серверу (ws://echo.websocket.org).
Поэтому я двинулся вперед и попытался соединить два моих компьютера. Идея состояла в том, чтобы запустить сервер в Linux и запустить клиент на Mac, поэтому я заменил "localhost" на IP linux как для кода клиента, так и для сервера. Когда я выполняю его, Unity (клиент) продолжает говорить мне "Не локальный IP-адрес", и он не подключается.
Я думал, что это может быть проблема с брандмауэром, и что сначала я должен открыть используемый порт... Это так? Если так, как я могу открыть конкретный порт на Mac и Linux?
2 ответа
Наконец я решил это. Это была проблема с кодом сервера, я не знаю, где была ошибка. Вместо того, чтобы использовать мой сервер C#, я использовал Node.js, и он работает нормально. Я могу подключиться с других компьютеров без проблем.
Проверьте привязки.
WebSocketServer (System.Net.IPAddress.Any, порт);
Проверьте, можете ли вы подключиться к ip: port.
iptables -L для вывода списка настроенных правил в Linux.