SignalR 简单示例

当你需要ChatAI服务但无法魔法或没有海外手机号码时,Chat8就是你的解决方案。我们基于OpenAi开发,所有用户内容都会加密,欢迎使用!点击使用:
https://chat.chat826.com/#/register?bronk_on=375671

源码
https://gitee.com/zzbbc/samplewebsocketsignalr

1,引入 SignalR

  services.AddSignalR();

2,路由设置

   app.UseEndpoints(endpoints =>
    {
        endpoints.MapHub<VideoHub>("/videohub");    // 配置VideoHub

        endpoints.MapControllerRoute(
            name: "default",
            pattern: "{controller=Home}/{action=Index}/{id?}");

      
    });

3,创建signalR服务

 public class VideoHub : Microsoft.AspNetCore.SignalR.Hub
    {
        public async Task SendBitmap(byte[] bytes)
        {
            // 将视频帧发送给所有连接的客户端
            await Clients.All.SendAsync("ReceiveVideoFrame", bytes);

        }

        /// <summary>
        /// 收到信息
        /// </summary>
        /// <returns></returns>
        [HubMethodName("SendMessage")]
        public async Task SendMessage(string message)
        {

            var bs= Encoding.UTF8.GetBytes(message);
            SendBitmap(bs);
        }

        /// <summary>
        /// 连接时
        /// </summary>
        /// <returns></returns>
        public override Task OnConnectedAsync()
        {
            return base.OnConnectedAsync();
        }

        /// <summary>
        /// 断开时
        /// </summary>
        /// <param name="exception"></param>
        /// <returns></returns>
        public override Task OnDisconnectedAsync(Exception exception)
        {
            return base.OnDisconnectedAsync(exception);
        }
    }

4 h5 前端


<script src="~/js/signalr.js"></script> //自己找
<script type="text/javascript">
    let connection = new signalR.HubConnectionBuilder().withUrl("/videohub").build();

    connection.on("ReceiveVideoFrame", function (bytes) {
       //收到信息


    });

    connection.start().then(function() {
        console.log('signalR连接成功');

        //发消息给服务端
        const message = "Hello from client!";
        connection.invoke("SendMessage", message);

    }).catch(function(err) {
        console.error(err.toString());
    });
</script>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
SignalR是一个用于实时Web应用程序的开源库,它允许服务器端代码主动推送内容到客户端。引用\[1\]中的代码展示了一个使用SignalR示例。在这个示例中,定义了一个名为MsgHub的Hub类,其中包含了一个名为SendMsg的方法,用于接收客户端发送的消息,并通过调用Clients.All.getMsg方法将消息发送给所有客户端。 引用\[2\]中的代码展示了另一个使用SignalR示例。在这个示例中,定义了一个名为MsgHub的Hub类,其中包含了一个名为ClientToServer的方法,用于客户端调用服务器端,记录用户唯一标识。 引用\[3\]中的代码展示了如何在SignalR应用程序中配置跨域支持。通过使用Map方法将SignalR路由映射到指定的路径,并使用UseCors方法启用跨域支持。 总结起来,SignalR是一个用于实时Web应用程序的库,可以实现服务器端主动推送内容到客户端。通过定义Hub类和相应的方法,可以实现客户端和服务器端之间的交互。同时,可以通过配置跨域支持来满足不同域名之间的通信需求。 #### 引用[.reference_title] - *1* [C#——signalr实现简单的网页实时聊天](https://blog.csdn.net/qq_35077107/article/details/104457214)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [C#项目集成SignalR](https://blog.csdn.net/DoWhatYouSay/article/details/104926676)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值