.net framework 中Owin 通过启动类 Startup.cs 使用 SignalR
1. 安装 SignalR NuGet 包
在 NuGet 包管理器中,搜索 Microsoft.AspNet.SignalR 并安装它
2. 创建 SignalR Hub
SignalR 使用 Hub 来处理客户端与服务器之间的通信。你可以创建一个 SignalR Hub 类,它会处理客户端和服务器之间的实时消息传递。
-
在你的项目中创建一个名为
ChatHub.cs的类。namespace 名称空间{ public class ChatHub : Hub { // 向所有连接的客户端发送消息 public void SendMessage(string user, string message) { // 向所有客户端广播消息 Clients.All.broadcastMessage(user, message); } } }
3. 配置 SignalR
using Microsoft.Owin; using Owin; [assembly: OwinStartup(typeof(名称空间.Startup))] namespace 名称空间 { /// <summary> /// Startup 的摘要说明 /// </summary> public class Startup { public void Configuration(IAppBuilder app) { // 配置 SignalR 路由 app.MapSignalR(); } } }
4.客户端链接demo
<!DOCTYPE html> <html> <head> <title>SignalR Chat</title> <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/signalr.js/2.4.3/jquery.signalR.min.js"></script> <!--<script src="https://cdnjs.cloudflare.com/ajax/libs/signalr/2.4.1/jquery.signalR.min.js"></script>--> </head> <body> <div> <label for="user">User:</label> <input type="text" id="user" /> <label for="message">Message:</label> <input type="text" id="message" /> <button onclick="sendMessage()">Send</button> </div> <div id="messages"></div> <script type="text/javascript"> // 创建连接 var connection = $.hubConnection(); var chatHub = connection.createHubProxy('chatHub'); // 监听服务器广播的消息 chatHub.on('broadcastMessage', function (user, message) { $('#messages').append('<div><strong>' + user + ':</strong> ' + message + '</div>'); }); // 启动连接 connection.start().done(function () { console.log("SignalR connection established!"); }); // 发送消息到服务器 function sendMessage() { var user = $('#user').val(); var message = $('#message').val(); chatHub.invoke('SendMessage', user, message); } </script> </body> </html>

浙公网安备 33010602011771号