Windows 서비스에서 자체 호스팅으로 SignalR
허브를 사용합니다. 허브에 접속하는 클라이언트는 winforms
입니다. 서버는 포트 80에서 실행되며 정상적으로 작동합니다.SignalR은 무작위로 포트를 수신합니까, 아니면 미리 정의 할 수 있습니까?
클라이언트가 메시지를 보내거나받는 포트가 궁금합니다.
내가 아는 한 포트는 우리가 클라이언트 컴퓨터를 떠나고 우리가 서버에 도착하는 포트가 다른 포트 일 수 있습니다. 내 클라이언트가 실행될 머신은 포트가 부족할 것이므로 (대부분의 포트는 닫힙니다.) 따라서 클라이언트가 머신을 떠나는 포트를 미리 정의해야한다고 생각합니다.
- 나는 이렇게 생각하고 있나?
- 클라이언트 측에서 항상 클라이언트 포트가 동일한 연결을 만들 수 있습니까? 여기
내 클라이언트 코드 :
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();
}
참고 : 나는 그러므로 나는이 문제 여부있을 것입니다 모르겠어요,하지만, 클라이언트 환경을 시뮬레이션 할 수 아니다 고객이이 요구 사항을 지적했기 때문에 우리가 고객을 설치할 때 놀라지 않을 것입니다.
그래서 자동으로 처리되므로 명시 적으로 처리 할 수 없다는 뜻입니다. 그런 다음, 소수의 포트를 제외하고 모든 포트가 방화벽에서 닫히고 사용 가능한 포트 중 하나를 찾아서 선택할 수 있습니까? 아니면 무작위로 실패할까요? –
@ TolgaEvcimen 방화벽 구성 방법을 잘 모르겠지만 일반적으로 방화벽은 들어오는 포트를 차단하고 덜 일반적으로 보내는 포트는 차단합니다. 이 경우 클라이언트에서 서버로 나가는 경우 –
이러한 클라이언트는 예외적 인 클라이언트이므로 예 방화벽이 엄격하게 구성됩니다. –