2014-01-17 42 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