Я использую концентратор SignalR
в качестве собственного хостинга в службе Windows. Есть winforms
клиентов, которые разговаривают с хабом. Сервер работает на 80 порту и работает нормально.
Мне интересно, на какой порт клиент отправляет или получает сообщения?
Насколько я знаю, порт, который мы покидаем на клиентской машине, и порт, который мы прибываем на сервер, являются или могут быть разными портами. Машины, на которых будет работать мой клиент, будут иметь короткие порты (большинство портов закрыты), поэтому я думаю, что мне нужно заранее определить порт, который мой клиент также покидает машину.
- Правильно ли я так думаю?
- Как я могу создать соединение на стороне клиента, чтобы клиентский порт всегда был одинаковым?
Вот мой клиентский код:
IHubProxy _TextCopierHub;
HubConnection _HubConnection { get; set; }
public TextCopierHub ( string url )
{
_HubConnection = new HubConnection(url);
_TextCopierHub = _HubConnection.CreateHubProxy("TextCopierHub");
_HubConnection.Credentials = CredentialCache.DefaultCredentials;
if ( !_HubConnection.Start().Wait(10000) )
throw new TimeoutException("Hub didn't start in 10 seconds");
RegisterEvents();
}
примечание: я не могу смоделировать клиентскую среду, поэтому я даже не уверен, будет ли это проблемой, но я не хочу удивлять, когда мы установим клиенты, так как клиент указал на это требование.