SignalR传输精益?
问题描述:
SignalR是否每次都在服务器和客户端之间发送回调方法的全名,或者是否存在编码?SignalR传输精益?
例子:
如果我调用服务器上的一个名为SetChatModeType方法,它发出的整个方法的名字第一次。但下次我调用它时,客户端和服务器都会将方法名称编码为适合几个字节,而不是发送整个“SetChatModeType”。
这比任何东西都更值得好奇。我没有足够频繁地援引任何事情来解决这个问题,但这可能会成为我下决心的决定性因素。
答
是的,它似乎确实将该信息从服务器发送到客户端,(参数"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性能良好的资源和专门针对邮件大小以及如何减少它的问题。
在本文中,“减少消息大小”下有一个用于减少高流量场景的SignalR消息的代码示例:http://www.asp.net/signalr/overview/signalr-20/performance-and-scaling/signalr-performance –
@PatrickFletcher这是一个很好的补充,这个答案。感谢您指出了这一点。 :) – Scott