这是一个极其简陋的聊天室!
这个例子只是在官方的例子上加了 Group 的用法而已,主要是官方给的 Group 的例子就两行代码,看不出效果.
第一步:修改 chat.js
"use strict"; //创建一个连接var connection = new signalR.HubConnectionBuilder().withUrl("/chatHub").build(); //定义客户端的 ReceiveMessage 方法connection.on("ReceiveMessage", function (user, message) { var msg = message.replace(/&/g, "&").replace(/</g, "<").replace(/>/g, ">"); var encodedMsg = user + " says " + msg; var li = document.createElement("li"); li.textContent = encodedMsg; document.getElementById("messagesList").appendChild(li); }); //给"Send Message"按钮添加点击事件document.getElementById("sendButton").addEventListener("click", function (event) { var user = document.getElementById("userInput").value; var message = document.getElementById("messageInput").value; //调用服务端的 SendMessage 方法 connection.invoke("SendMessage", user, message).catch(function (err) { return console.error(err.toString()); }); event.preventDefault(); }); //给"进入聊天室"按钮添加点击事件document.getElementById("goChatRoom").addEventListener("click", function () { goChatRoom();//开启连接 document.getElementById("outChatRoom").style.display = "block"; this.style.display = "none"; }); //给"退出聊天室"按钮添加点击事件document.getElementById("outChatRoom").addEventListener("click", function () { outChatRoom();//关闭连接 this.style.display = "none"; document.getElementById("goChatRoom").style.display = "block"; }); //开启连接function goChatRoom() { connection.start().catch(function (err) { return console.error(err.toString()); }); } //关闭连接function outChatRoom() { connection.stop(); }
第二步:定义强类型中心
public interface IChatClient { //就算是这种强类型方式,客户端定义的方法名也必须和这个方法名一样,包括签名. Task ReceiveMessage(string user, string

