我在从应用程序接收消息时遇到问题,因为有时有效但并非总是如此,我必须 F5 端才能恢复工作。任何想法可能是什么?
正确的消息:
[19:15:27 GMT+0100 (Środkowoeuropejski czas stand。信号R:调用问题。发送消息 jquery.signalR-2.2.0.min.js:8 [19:15:27 GMT+0100 (Środkowoeuropejski czas stand.)]SignalR:调用的问题。发送消息 jquery.signalR-2.2.0.min.js:8 [19:15:27 GMT+0100 (Środkowoeuropejski czas stand.)]SignalR:在中心"问题"上触发客户端中心事件"newMessage"。 游戏控制器.js:19 2d856458-6874-44a9-a402-37ab6ca61cec: 你好
不正确的消息(无应答):
[19:15:51 GMT+0100 (Środkowoeuropejski czas stand。信号R:调用问题。发送消息 jquery.signalR-2.2.0.min.js:8 [19:15:51 GMT+0100 (Środkowoeuropejski czas stand.)]SignalR:调用的问题。发送消息
$(function () {
$.connection.hub.logging = true;
$.connection.hub.start();
});
$.connection.hub.error(function (err) {
alert("error: " + err);
});
angular.module('app').value('gameHub', $.connection.question);
在 CTRL 中
$scope.sendMessage = function () {
gameHub.server.sendMessage($scope.message);
}
gameHub.client.newMessage = function onNewMessage(message) {
$scope.messages.push({message: message});
$scope.$apply();
console.log(message);
}
由于 SignalR 用于实时应用程序,它会在其他人发送后立即向您发送消息,同时如果您在另一个没有连接集线器的页面上,那么可能有两种情况
1)如果您通过HTML或其他内容附加了消息,那么当您返回同一页面(聊天)时,由于页面刷新,消息将被删除。
-溶液
you can try saving messages to database so that when you get back you can
retrieve you chat
2) 集线器可能断开连接
so you should try using OnConnected(), OnDisconnected(), & On ReConnected() methods.
- PS signalR 在用户关闭选项卡/浏览器或用户刷新页面时触发 OnDisconnected() 方法