В настоящее время у меня есть WebSocket
сервер (C #) и клиент (JavaScript / HTML5).Это прекрасно работает в моей локальной сети, однако, когда я слушаю и заставляю клиента подключаться к моему «реальному» IP (который является IP-адресом моего маршрутизатора, идентифицируемого во всем мире, то есть вместо 192.168.x.x
), он не работает.Класс WebSocket действительно получает readyState
из 1
, но когда я отправляю что-либо с клиента на сервер (или наоборот), сообщение не приходит.
Я уже установил своймаршрутизатор для включения переадресации портов, в противном случае он все равно не будет работать (я попытался не включить это, и WebSocket
сразу получил readyState
из 2
).
Код JavaScript:
var ws = new WebSocket("ws://some.real.ip.address:myport");
// For privacy reasons I'd like to keep the address and port private
Код C # (я использую библиотеку Nugget для реализации сервера сокетов):
var nugget = new WebSocketServer(myport, "*", "ws://some.real.ip.address:myport");
Очевидно, что адрес и порт совпадают.
Что может бытьпричина этого?Возможно ли, что мой интернет-провайдер не разрешает подключения к сокетам, когда мой компьютер является сервером?Если так, то почему WebSocket
получает readyState
из 1
?
Большое спасибо.