2014-01-17 5 views
0

Подписывает ли SignalR все имя метода обратного вызова между сервером и клиентом каждый раз или есть кодировка?Передача сигнала передачи сигнала?

Пример:

Если я вызов метода с именем SetChatModeType на сервере, он посылает полное имя метода в первый раз. Но в следующий раз, когда я вызову его, клиент и сервер оба закодировали имя метода, чтобы оно входило всего несколько байт, а не отправляло весь «SetChatModeType».

Это скорее любопытство, чем все. Я не прибегаю к чему-то достаточно часто, чтобы это имело значение, но это может быть решающим фактором для меня по линии.

ответ

2

Да, действительно кажется, отправляет информацию с сервера к клиенту, (параметр "M":"clientMethod" т.е. "M":"SetChatModeType"). This article описывает, как работает протокол.

Пример формата сообщения, , поясняется в статье.

Клиент -> Сервер

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

Сервер -> Client

{"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

Смежные вопросы