zoukankan      html  css  js  c++  java
  • SignalR实例

    服务器

    创建signalr集线器类

     [HubName("AdHub")]
        public class AdHub : Hub
        {
            public void Send(string ver)
            {
                Clients.All.addMessage(ver);
            }
    
        }
    signalr集线器
    [assembly: OwinStartupAttribute(typeof(Server.Startup))]
    namespace Server
    {
        public partial class Startup
        {
            public void Configuration(IAppBuilder app)
            {
                app.UseCors(CorsOptions.AllowAll);
                app.MapSignalR();
                ConfigureAuth(app);
            }
        }
    
         
    }
    StartUp.cs

    JS客户端

    Microsoft.AspNet.SignalR.Client

      <script src="http://172.16.1.2:8888/Scripts/jquery-1.12.4.min.js"></script>   
        <script src="http://172.16.1.2:8888/Scripts/jquery.signalR-2.2.1.min.js"></script>  
        <script src="http://172.16.1.2:8888/signalr/hubs"></script>
    引用服务器signalr
      <script type="text/javascript">
            $(function () {
                //设置hub连接
                $.connection.hub.url = "http://172.16.1.2:8888/signalr";
                // 定义代理
                var ad= $.connection.AdHub;
    
               //创建客户端自定义内容
                ad.client.addMessage = function ( ver) {
                    alert(ver + '推送成功');
                };
              
                // 开始连接
                $.connection.hub.start().done(function () {
                      $("#msg").click(function(){
                              chat.server.send("这是向服务器发的消息");
                      });
                });
            }); 
        </script>
    浏览器客户端代码

    服务器端定义复杂对象

    public class Myclass
    {
           public string username{get;set;}
           public string message{get;set;}
    }
    复杂对象代码

    js客户端复杂对象

    var proxy=$.connection.AdHub;
    proxy.client.addMessage=function(result)
    {
         console.log(result.username+'   '+result.message);
    }
    js客户端代理

    var json={aaa:"1111",bbb:2222};

    //服务端定义的方法

    public void Push(UserRedPacket model)
    {

     //客户端方法

    Clients.All.Pull(model);
    }

    js 客户端

    proxy.server.push()//调用服务端方法

    proxy.client.pull=function(){}//定义客户端在收到消息是要干什么事

    从Hub类管理组成员身份

    //调用客户端的连接ID,如果有多个Hub,该连接ID是唯一的
    string connectionId=Context.ConnectionId;
    
    //用户信息
    System.Security.Principal.IPrincipal user=Context.User;
    
    //获取Signalr连接对象
    System.Web.HttpContextBase httpContext=Context.Request.GetHttpContext();
  • 相关阅读:
    Ubuntu 使用OpenCV 利用Makefile运行
    YOLOV3——PyTorch训练TensorFlowLite部署模型转换
    PyTorch——学习笔记
    opencv调用摄像头分辨率问题
    Dlib与Opencv中图像格式转换(matrix-Mat)
    Windows下 VS2015 + Dlib + CUDA环境搭建
    OpenCV——银行卡识别
    QT入门
    LeetCode——最长连续回文串
    数值分析--第四章--特征值特征向量计算(乘幂法)
  • 原文地址:https://www.cnblogs.com/kuiyu/p/5955207.html
Copyright © 2011-2022 走看看