SignalR – это технология, которая позволяет обмениваться мгновенными сообщениями между клиентом и сервером. Мы поговорим о том, для чего нужна эта технология, как она изменилась с выходом .NET Core и как её можно применять на практике.
: Hub { public async Task SendMessage(string user, string message) { await Clients.All.SendAsync("ReceiveMessage", user, message); } } } 10 От теории к практике – код хаба
(user, message) { var msg = user + " says " + message; var li = document.createElement("li"); li.textContent = encodedMsg; document.getElementById("messagesList").appendChild(li); }); connection.start().catch(function (err) { return console.error(err.toString()); }); <script src="~/lib/signalr/dist/browser/signalr.js"></script> От теории к практике – клиент
var message = document.getElementById("messageInput").value; connection.invoke("SendMessage", user, message) .catch(function (err) { return console.error(err.toString()); }); event.preventDefault(); }); От теории к практике – клиент
подбор астероидов идёт опыт. При наборе заданного количества опыта происходит обновление кораблей • Подобранные астероиды периодически обновляются • Можно перемещаться по игровым уровням 19 От теории к практике – усложняем задачу
окончательные расчёты делает сервер • Начальный объём данных может быть большим • Обновлением информации и перерасчётами занимается отдельное приложение 21 Особенности архитектуры
connectionStrings) Group Groups OthersInGroup User Users Отправить всем: Строка подключения: string conStr = Context.ConnectionId; Получатели: Группы, и не только
сonnection.StartAsync().Wait(settings.MaxConnectionAttemptTimeout); if (connection.State != ConnectionState.Connected) throw new TimeoutException(); .NET клиент и вызов из другого приложения