.net framework 中Owin 通过启动类 Startup.cs 使用 SignalR

1. 安装 SignalR NuGet 包

在 NuGet 包管理器中,搜索 Microsoft.AspNet.SignalR 并安装它

2. 创建 SignalR Hub

SignalR 使用 Hub 来处理客户端与服务器之间的通信。你可以创建一个 SignalR Hub 类,它会处理客户端和服务器之间的实时消息传递。

  1. 在你的项目中创建一个名为 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>

 

posted @ 2025-01-03 16:58  uxinxin  阅读(80)  评论(0)    收藏  举报