2014-01-17 2 views
0

SignalR은 매번 서버와 클라이언트간에 콜백 메소드의 전체 이름을 보내거나 인코딩이 있습니까?SignalR 전송 린 -?

예 :

내가 서버의 방법이라는 SetChatModeType를 호출하고있어 경우, 그것은 전체 메소드 이름을 처음 보냅니다. 하지만 다음 번에 내가 호출 할 때, 클라이언트와 서버 모두 메소드 이름을 인코딩하여 전체 'SetChatModeType'을 보내는 것과 반대되는 단 몇 바이트 만 맞 춥니 다.

이것은 무엇보다 호기심입니다. 나는이 일에 문제가 생길만큼 빈번하게 어떤 것을 부르지는 않을 것이지만 그것은 나를위한 결정적인 요인이 될 수 있습니다.

답변

2

예는 클라이언트, (매개 변수 "M":"clientMethod""M":"SetChatModeType")에 서버에서 해당 정보를 전송하는 것처럼 보인다. This article은 프로토콜 작동 방식을 분석합니다.

예제 메시지 형식 에 설명되어 있습니다.

클라이언트 -> 서버

{"H":"hubName", "M":"MethodName", "A":[arguments], "I":messageNumber } 

서버 - 클라이언트 방식을 트리거> 클라이언트

{"C":"B,6|O,0|P,0|Q,0", "M":[{"H":"hubName", "M":"clientMethod", "A":[arguments]}]} 

관련 응답 DTO는 defined here입니다. @PatrickFletcher으로


this article가 SignalR 성능을 향상시키기위한 좋은 자원이며, 특히 메시지의 크기와 방법을 감소하는 방법의 문제를 해결, 지적한다.

+1

이 기사의 "메시지 크기 줄이기"에서 트래픽이 많은 시나리오에 대한 SignalR 메시지를 줄이기위한 코드 샘플이 있습니다. http://www.asp.net/signalr/overview/signalr-20/performance-and-scaling/signalr-performance –

+0

@PatrickFletcher이 답변에 큰 도움이됩니다. 그 점을 지적 해 주셔서 감사합니다. :) – Scott