я использую класс SuperSocket Websockets для сокет-сервера, который намеревается передавать сообщения приложению HTML5 каждый раз, когда обрабатывается значение (это процессор формул), но у меня есть несколько клиентов, которые зависят от этой информации в «живом» "mode.
Я создал сервер веб-сокетов в сервисе C# windows, который передает информацию всем подключенным клиентам.
WebSocketServer socketServer = new WebSocketServer();
var config = new RootConfig();
var serverConfig = new ServerConfig
{
Name = "SecureSuperWebSocket",
Ip = "Any",
Port = 1885,
Mode = SocketMode.Tcp,
};
socketServer.Setup(config,serverConfig);
socketServer.Start();
На стороне HTML5 я создал следующий код. Мой publi c IP имеет все правила брандмауэра, разрешающие соединение.
//XX.XX.XXX.XXX is a public IP Address with the 1885 port opened
var socketServer = new WebSocket("ws://XX.XX.XXX.XXX:1885");
socketServer.onmessage = function(event) {
console.log(event.data);
};
Моя проблема заключается в том, что он отлично работает, когда я запускаю веб-приложение, подключающееся к серверу веб-сокетов по локальной сети IP. передает без проблем, но когда я использую IP-адрес publi c, (из веб-приложения на тот же IP-адрес) он только подключается, а затем отключается.
Он даже работает с IP-адресом publi c со страницы приветствия chrome, но завершается ошибкой при подключении к Publi c IP + из веб-приложения, которое выполняется на том же publi c ip адрес.
Есть мысли?