SignalR的Javascript客户端API使用方式整合

本文详细介绍了使用SignalR进行实时通信的方法,包括服务端配置、客户端连接建立、消息发送与接收、代理对象使用及状态设置等核心内容,是理解和实践SignalR的重要资源。
 PersistentConnectionHub/生成Proxy模式Hub/非生成Proxy模式
服务端配置

app.Map("/messageConnection", map =>
           {
               map.RunSignalR<MessageConnection>();
           });

app.Map("/messageHub", map =>
           {
               map.RunSignalR(new Microsoft.AspNet.SignalR.HubConfiguration { EnableJavaScriptProxies = true });
           });

app.Map("/messageHub", map =>
            {
                map.RunSignalR(new Microsoft.AspNet.SignalR.HubConfiguration { EnableJavaScriptProxies = true });
            });

引入js文件jquery-1.6.4.min.js
jquery.signalR-2.2.0.min.js
jquery-1.6.4.min.js
jquery.signalR-2.2.0.min.js
/messageHub/js
上述js文件是动态生成,其中messageHub的为服务端定义的路径
jquery-1.6.4.min.js
jquery.signalR-2.2.0.min.js
创建连接var connection = $.connection("/message");var connection = $.connection;var connection = $.hubConnection();
开启连接

connection.start()
                .done(function () {
                    connected = true;
                })
                .fail(function () {
                    alert("连接失败");
                });

connection.hub.start()
                .done(function () {
                    connected = true;
                })
                .fail(function () {
                    alert("连接失败");
                });

connection.start()
                .done(function () {
                    connected = true;
                })
                .fail(function () {
                    alert("连接失败");
                });

代理对象var proxy = connection.MessageService;
MessageService是Hub的名称
var proxy = connection.createHubProxy("MessageService");
MessageService是Hub的名称
定义客户端方法

proxy.client.hello = function (message) {
                      console.log(message);   

}

proxy.on("hello", function (message) {        

                  console.log(message);

});

接收消息

connection.received(function (message) {
                alert(message);
            });



通过服务器调用客户端方法实现


通过服务器调用客户端方法实现
发送消息connection.send(message);通过调用服务端方法实现
proxy.server.hello(message);
通过调用服务端方法实现
proxy.invoke("hello", message);
设置QueryString在创建connection时指定
var connection = $.connection("/messageConnection", { username: "qs" + username });

connection.hub.qs = { username: "qs" + username };

connection.qs = { username: "qs" + username };
设置Cookiedocument.cookie = "username=" + username;document.cookie = "username=" + username;document.cookie = "username=" + username;
设置Stateproxy.state.ClientType = "HubAutoProxy";proxy.state.ClientType = "HubNonAutoProxy";

转载于:https://www.cnblogs.com/ZaraNet/p/9935197.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值