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>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值