2017-11-01 23 views
0

ASP.NET Core 2.0 용 SignalR, 클라이언트 측 (1.0.0-alpha2-final), C# VS2017 사용. 코드를 연결하려면SignalR for ASP.NET Core 2.0에서 HubConnection.StartAsync의 성공 여부를 확인하는 방법은 무엇입니까?

는이 이후 await hubConnection.StartAsync(); 는 클라이언트가 연결을 관리 않은 경우에 우리가 테스트 할 수 있습니다 방법 void에 대한 await입니까? 내 테스트에서 나는 public override async Task OnConnectedAsync()에 서버 측에 중단 점을 가지고 있지만 그 중단 점은 항상 내가 클라이언트가 연결되지 않는 때로는 것을 알고 있으므로 치지 입니다. 또는 에 연결되었지만 OnConnectedAsync()이 트리거되지 않았습니까?

클라이언트가 연결을 설정하는 데 성공한 것을 어떻게 알 수 있습니까?

감사합니다.

편집 : 추가 정보 그것 않습니다 화재 OnConnectedAsync()localhost (VS에서 디버깅)를 사용하면; 그것 화재 OnConnectedAsync() ngrok 통해 연결하면 않습니다. 아마 이것은 프록시/CORS와 관련이 있습니다. 익숙하지 않습니다.

편집 : 내가 아닌 한 기존 URL을 변경하는 경우 클라이언트 실제로 그것이 (404) 그래서이 문제는 클라이언트가 ngrok를 통해 연결할 때 OnConnectedAsync()이 발생하지 않는 것 같습니다 제공하기 때문에 연결 않는 것 같습니다 하지만 localhost에 직접 연결되어 있으면 실행되지 않습니다.

답변

0

StartAsyncvoid 메서드는 아니지만 Task을 반환합니다. 클라이언트가 StartAsync을 연결하지 않으면 (오류가 발생한 작업을 반환) 클라이언트가 성공적으로 연결되면 비동기 호출이 오류없이 완료됩니다 (완료된 작업 반환).

+0

당신 말이 맞습니다. 이것을 지적 해 주셔서 감사합니다. 더 명확하게 내 문제는 오히려 내 게시물의 2 편집에서 설명한대로 : StartAsync * 끝 지점 (URL) * 존재하지 않는 던져 * 않습니다. 적절한 URL이 제공되면 서버에서 * 던지지는 않지만 localhost를 사용할 때는'OnConnectedAsync()'*가 실행되지만 ngrok와 같은 프록시를 통해 연결할 때는 실행되지 않습니다. 왜? –