이 글은 기계 번역의 미러 문서이며, 원본 기사로 바로 이동하려면 여기를 클릭해 주세요.

보기: 30231|회답: 1

[출처] SignalR은 웹소켓 프로토콜을 사용하지 않고 통신합니다

[링크 복사]
게시됨 2019. 4. 18. 오후 5:33:48 | | | |
ASP.NET SignalR은 ASP.NET 개발자를 위한 라이브러리로, 애플리케이션에 실시간 웹 기능을 추가하는 과정을 단순화합니다. 실시간 웹 기능은 서버가 클라이언트가 새 데이터를 요청할 때까지 기다리는 대신, 콘텐츠가 제공되는 즉시 연결된 클라이언트로 바로 전달할 수 있는 기능입니다.

ASP .NET SignalR은 ASP .NET 하의 클래스 라이브러리로, ASP .NET 웹 프로젝트에서 실시간 통신을 구현할 수 있습니다(즉, 클라이언트(웹 페이지)와 서버 측이 실시간으로 서로 알림을 주고받으며 메서드를 호출할 수 있습니다. SignalR은 세 가지 전송 모드를 제공합니다: 롱루핑(롱폴링), 웹소켓(HTML5 WEB 소켓), 포에버 프레임( 프레임을 숨기는 긴 요청 연결은 웹 클라이언트에서 명시적으로 지정할 수 있으며, 기본값이 채택된다면 기본으로(권장) 지정할 수 있습니다.SignalR은 브라우저 환경에 따라 적절한 전송 방식을 자동으로 선택합니다

웹사이트 데이터 로딩이 너무 느리기 때문에, 데이터 패킷이 너무 크고 네트워크 요청이 적합하며, "ws"가 비어 있고, SignalR이 웹소켓 프로토콜을 사용하지 않는다는 점이 밝혀집니다.

로컬 디버깅을 해보니, 웹사이트가 WS 프로토콜을 정상적으로 사용할 수 있다는 것을 알게 되었습니다. 즉, 웹소켓과 정상적으로 통신할 수 있고, 서버와 로컬 네트워크 요청의 차이를 관찰할 수 있었고, 다음과 같습니다:



URL:http://ip/signalr/negotiate?clientProtocol=1.5&connectionData=%5B%7B%22name%22%3A%22positionvehiclehub%22%7D%5D&_=1555578162378

지역:

{"Url":"/signalr","ConnectionToken":"iX0gmz3XDJpQ62b6eiWK16Quaf+LFlD5aHw1k2oC6dKPz7naDuFmc0M7+xiR72ZjJDuNnMvfZyZF72qJK/4g6FOKAsY5C0uCfViOBXPRJVMBczOXTyCKcztIcugmcBq8" ,"ConnectionId":"50598ad3-b138-458c-a58d-b4f84d23c0e0","KeepAliveTimeout":20.0,"DisconnectTimeout":30.0,"ConnectionTimeout":110.0,"TryWebSockets":true," 프로토콜 버전":"1.5","TransportConnectTimeout":5.0,"LongPollDelay":0.0}
서버:

{"Url":"/signalr","ConnectionToken":"4JbNUOp5/ju8Fljn29tCsFoTitZXk3XfF3tkuc/OYpaEQPawJHi3U1nTtjcJJzK4mVsOn9nAEECZj7h5732aV7tNJDgsasCon9uQwhqXZC5EAZPrAgASueApAjBCpPpE" ,"ConnectionId":"c46e67b1-4fb4-4345-983f-bf2c391d33e0","KeepAliveTimeout":20.0,"DisconnectTimeout":30.0,"ConnectionTimeout":110.0,"TryWebSockets":false," 프로토콜 버전":"1.5","TransportConnectTimeout":5.0,"LongPollDelay":0.0}
일부 파라미터는 원래 로컬 및 서버 파라미터와 달랐고, 저는 그것을 발견했습니다TryWebSocketsparameter, local은 true, server는 false입니다.



정보를 살펴보면, SignalR이 WebSocket 프로토콜을 사용할 경우 다음 조건들을 충족해야 함을 알 수 있습니다:

  • ASP.NET 4.5
  • IIS 8.0 (윈도우 서버 2012 또는 윈도우 8)
  • 서버에서 WebSockets 기능이 활성화되어 있습니다
  • 브라우저 WebSockets 지원



이건, 서버의 IIS 버전이 7.5라는 걸 알게 됐어요.WebSocket 프로토콜은 IIS 7.5에서 지원되지 않습니다



참고 링크:하이퍼링크 로그인이 보입니다.




이전의:WPF 프로그래머 레스트 디지털 클럭 [소스 코드 포함]
다음:"미친 프로그래머"
게시됨 2019. 4. 22. 오전 9:24:01 |
좋은 점, 마크
면책 조항:
Code Farmer Network에서 발행하는 모든 소프트웨어, 프로그래밍 자료 또는 기사는 학습 및 연구 목적으로만 사용됩니다; 위 내용은 상업적 또는 불법적인 목적으로 사용되지 않으며, 그렇지 않으면 모든 책임이 사용자에게 부담됩니다. 이 사이트의 정보는 인터넷에서 가져온 것이며, 저작권 분쟁은 이 사이트와는 관련이 없습니다. 위 내용은 다운로드 후 24시간 이내에 컴퓨터에서 완전히 삭제해야 합니다. 프로그램이 마음에 드신다면, 진짜 소프트웨어를 지원하고, 등록을 구매하며, 더 나은 진짜 서비스를 받아주세요. 침해가 있을 경우 이메일로 연락해 주시기 바랍니다.

Mail To:help@itsvse.com