• SignalR 前期简单配置


    一、随便你在哪个命名空间下新建一个Startup类,并在在该类中注册SignalR。

    using Owin;
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    
    namespace SignalRTest.Utils {
        public class Startup {
            public void Configuration(IAppBuilder app) {
                app.MapSignalR();
            }
        }
    }

    二、在web.config的configurationappSettings下配置节点,value值是Startup的全类型名称

    <appSettings>
        <add key="owin:AppStartup" value="SignalRTest.Utils.Startup"/>    
    </appSettings>

    三、在前端页面中引入相关js文件,如下:

        <script src="scripts/jquery-1.10.2.min.js"></script>
        <script src="scripts/jquery.signalR-2.2.2.min.js"></script>
        <script src="signalr/hubs"></script>

    啥?找不到signalr/hubs这个文件,不要慌,这个是程序自动生成的,在页面中只需要加上就OK!

    四、新建一个Hub派生类

    using Microsoft.AspNet.SignalR;
    using Microsoft.AspNet.SignalR.Hubs;
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Threading.Tasks;
    using MyProject.Entity;
    using SignalRTest.BLL;
    
    namespace SignalRTest.Utils {
        [HubName("groupChatHub")]
        public class GroupChatHub:Hub {
            [HubMethodName("sendMsg")]
            public void SendMsg(string data){
            
            }
        }
    }        

    新建的GroupChatHub类型继承Hub抽象类。在GroupChatHub类中实现的方法可以在客户端页面的当做js方法调用,相当于在客户端调用服务端的方法,和AjaxPro有点像。

    具体调用的情景如下所示:

     $(function () {
                //链接hub            
                var ticker = $.connection.groupChatHub;
                //启动
                $.connection.hub.start().done(function () {
                    //启动完毕,则调用服务器方法 创建聊天房间         
             ticker.server.joinRoom(QueryString("sid")).done(function () {
    }); }); $("#btnSend").click(function () { //获取文本框信息 var tbxInput = $(this).parent().children(".msgs"); if (tbxInput) { var msg = tbxInput.val() || ''; if (msg.length > 0) { // 调用服务器方法 主动发送消息,传入发送组,和发送的内容。 ticker.server.sendMsg(QueryString("sid"), msg); tbxInput.val(''); } else tbxInput.focus(); } }); $(".msgs").bind("keydown", event, function () { if (event.keyCode == 13) $("#btnSend").click(); }); });

    由此看出,继承自Hub抽象类的派生类GroupChatHub中的公共方法,是可以在前端通过js调用的!

  • 相关阅读:
    系统吞吐量(TPS)、用户并发量、性能测试概念和公式
    javascript 匿名函数和闭包
    构建高可扩Web架构和分布式系统实战
    Javascript prototype 的作用
    myeclipse下载地址
    tomacat7.0配置(windows)
    IEEE802.11
    C#(多态)
    C#(泛型集合的使用)
    C#(对象引用)
  • 原文地址:https://www.cnblogs.com/williamwsj/p/8275971.html
Copyright © 2020-2023  润新知