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();
  • 相关阅读:
    mac下编写命令脚本
    mac环境mongodb安装小坑
    JS
    设计模式:装饰器
    proxy 数据帧听
    react hook 简单实现
    报错:java.lang.NumberFormatException: null
    git回滚到指定版本
    1109. 航班预订统计 力扣(中等) 差分数组 不会但神奇
    528. 按权重随机选择 力扣(中等) 前缀和rand()
  • 原文地址:https://www.cnblogs.com/kuiyu/p/5955207.html
Copyright © 2011-2022 走看看