Я проверяю новое репозиторий SignalR (сервер): https://github.com/aspnet/SignalR И интересно, есть ли новый / будущий формат протокола? Я хотел создать образец клиента, работающего на портативной платформе .NET (например, netcoreapp1.0). Есть образец клиента и сервера (образец чата), но он не работает. Он подключается к серверу, но выдает исключение, как только я пытаюсь отправить сообщение (бесполезное «System.ArgumentNullException: значение не может быть нулевым»).
Итак, я проверил источник и смог обнаружить новый формат сообщения. Раньше это было так:
{"H": "MyHub", "M": "MyHubMethod", "A": ["This is one input argument"], "I": "0"}
Предполагая, что сервер настроен таким образом:
app.UseSignalR(routes => routes.MapHub<MyHub>("/myhub"));
Клиент настраивается с помощью клиента WebSocket (из пакета System.Net.WebSockets.Client
версии 4.3.0)
var ws = new ClientWebSocket();
await ws.ConnectAsync(new Uri("ws://myhost:port/myhub/ws"), CancellationToken.None);
Новый формат сообщения:
{
"Method": "MyCompany.MyNameSpace.MyHub.MyHubMethod",
"Arguments": ["This is one input argument"],
"Id": "0"
}
То есть: "Method"
, "Arguments"
и "Id"
больше не укорачиваются, и концентратор объединяется в "Method"
.
Другие части протокола (переговоры, управление соединением, пинг и т. Д.) Для меня все еще не определены. Может кто-нибудь показать какие-нибудь документы?
https://dotnet.myget.org/F/aspnetcore-dev/api/v3/index.json
- person balazska   schedule 14.11.2016"Method"
- это просто имя метода, не нужно добавлять пространство имен + имя класса. Это уже очевидно из пути, так как один концентратор отображается на один путь - person balazska   schedule 14.02.2017