ASP.NET Core 2.2 基础知识(十七) SignalR 一个极其简陋的聊天室

 

这是一个极其简陋的聊天室!

这个例子只是在官方的例子上加了 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, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;");     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

                    
                
50000+
5万行代码练就真实本领
17年
创办于2008年老牌培训机构
1000+
合作企业
98%
就业率

联系我们

电话咨询

0532-85025005

扫码添加微信