我在客户端使用SignalR而不使用代理
我想在浏览器关闭时处理signalR中的断开事件,然后在我的应用程序中初始化另一个集线器
有关详细信息,请参阅此代码
var firstHub = jqu.hubConnection();
firstHub.url = "http://localhost:9351/signalr";
var socket = firstHub.createHubProxy('testHub');
var webSocketClass = {
id=''
};
socket.on("sendAll", function (name, message) {
console.log(name + " " + message);
});
firstHub.start({ jsonp: true }).done(function () {
socket.invoke("send", webSocketClass);
这是第一个中心,第二个看起来像这样:
var secondHub = jqu.hubConnection();
secondHub.url = "http://localhost:9351/signalr";
var secondSocket = secondHub.createHubProxy("onlineUserHub");
secondSocket.on("send", function (user) {
console.log(user);
});
secondHub.start({ jsonp: true }).done(function () {
secondSocket.invoke("onLineUserChanged", webSocketClass);
});
第一个集线器断开连接后,我想将值发送到第二个集线器。
以下代码不起作用:
socket.on("onDisconnect", function () {
alert("Hello");
});
答案 0 :(得分:1)
在信号器2.2中,检查连接关闭,你可以试试这个
var connection = $.hubConnection();
var hub = connection.createHubProxy('TestHub');
//the most important part
connection.disconnected(function() {
alert('Disconnected!');
});
connection.start();
此事件可能会立即触发或在多次尝试重新连接后触发