zoukankan      html  css  js  c++  java
  • SignalR 2.0 初次使用说明

    如何使用SignalR 2.0

    一:首先通过Nuget安装SignalR 2.0 【本人使用的时候最新版本为2.0】2.0与之前1.X有部分命名空间和配置不同请注意

    二:建一个专门的类库用来负责SignalR 2.0的服务端

    如果之前已经安装好了SignalR 2.0 可能新添加的类库里面没有SignalR 2.0相关代码 那么可以通过以下方式安装进去

    安装语句  install-package Microsoft.AspNet.SignalR

    注意在前台的SignalR 版本必须跟服务端的一致 不然会出现无法通信的情况

    三:服务端代码示例

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Web;
    using Microsoft.AspNet.SignalR;
    using Microsoft.AspNet.SignalR.Hubs;
    
    namespace PB.Common.HubLibrery
    {
        [HubName("myHubPms")]
        public class HubPMS : Hub
        {
    
            public void send(string msg)
            {
                Clients.All.addMessage(msg);
            }
    
        }
    }

    在前台建立一个Startup类

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using Owin;
    using Microsoft.Owin;
    [assembly: OwinStartup(typeof(PB.UI.BS.Startup))]
    
    namespace PB.UI.BS
    {
        public class Startup
        {
            public void Configuration(IAppBuilder app)
            {
                // Any connection or hub wire up and configuration should go here
                app.MapSignalR();
            }
    
        }
    }

    在MVC的webconfig里面添加一行代码
    appSettings里面添加

      <add key="owin:AppStartup" value="PB.UI.BS.Startup, PB.UI.BS" />

    这里的格式是这样的

    <add key="owin.AppStartup" value="命名空间.Startup,命名空间"/>

    好了现在可以看下前台如何调用

    在页面上面引入一下JS

    <script src="/Scripts/jquery.signalR-2.0.0.min.js" type="text/javascript"></script>
    <script src="/signalr/hubs" type="text/javascript"></script>

    JS代码 此JS代码为登陆的时候自动向服务端发送消息

    $(function () {
        $("#d_username").focus();
        var IWannaChat = $.connection.myHubPms;
    
        $.connection.hub.start().done(function () {
            $('#btnLogin').click(function () {
                //服务
                IWannaChat.server.send($("#d_username").val() + "正在登陆中...");
                // Call the Send method on the hub. 
                chat.server.send($('#displayname').val(), $('#message').val());
                // Clear text box and reset focus for next comment. 
                loginIn();
            });
        });
    
    
    
        $("#btnLogin").click(loginIn);
    })

     JS2:此JS为接收服务端发送的消息 显示在页面上

    $(function () {
        var IWannaChat = $.connection.myHubPms;
    
        //这个主要是接收后台处理的结果,然后打印到前台来
        IWannaChat.client.addMessage = function (message) {
            $("#log").append("<li>" + message + "</li>");
        };
    
        //开启(长轮训的方式)
        $.connection.hub.start();
    });
  • 相关阅读:
    Partition HDU
    FFT版题 [51 Nod 1028] 大数乘法
    [51Nod 1220]
    [bzoj 4176] Lucas的数论 (杜教筛 + 莫比乌斯反演)
    [51Nod 1222]
    [51Nod 1227] 平均最小公倍数 (杜教筛)
    算法-05-二分查找第一个出现的数 美团一面
    Hbase-00-MAC 安装Hbase 单机模式
    算法-04-用两个栈实现队列
    算法-03-Java 实现阻塞队列 字节三面算法题
  • 原文地址:https://www.cnblogs.com/zjba2/p/3442986.html
Copyright © 2011-2022 走看看