【问题标题】:SignalR ASP.NETSignalR ASP.NET
【发布时间】:2016-02-20 18:18:51
【问题描述】:

我在从应用程序接收消息时遇到问题,因为有时可以,但并非总是如此,我必须按 F5 方才能恢复工作。有什么想法吗?

正确的信息:

[19:15:27 GMT+0100(Środkowoeuropejski czas stand.)] SignalR:调用 question.SendMessage jquery.signalR-2.2.0.min.js:8 [19:15:27 GMT+0100 (Środkowoeuropejski czas stand.)] SignalR:调用的问题.SendMessage jquery.signalR-2.2.0.min.js:8 [19:15:27 GMT+0100 (Środkowoeuropejski czas stand.)] SignalR:在集线器“问题”上触发客户端集线器事件“newMessage”。 gameController.js:19 2d856458-6874-44a9-a402-37ab6ca61cec: 你好

不正确的消息(没有答案):

[19:15:51 GMT+0100(Środkowoeuropejski czas stand.)] SignalR:调用 question.SendMessage jquery.signalR-2.2.0.min.js:8 [19:15:51 GMT+0100 (Środkowoeuropejski czas stand.)] SignalR:调用 question.SendMessage

 $(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);
}

【问题讨论】:

  • 如果我直接进入我聊天的页面,一切正常,如果更改我的页面并且我会返回,它会停止工作
  • 您可以使用 Wireshark 等工具进入数据包级别。
  • 当我调试程序时,它正在工作(进入),但如果我不这样做,有时我的页面没有得到答案。为什么?
  • 我想,如果你总是使用相关的浏览器connectionId和客户端UserId来交换数据,你就不会有这样的问题。
  • 您可以像这样获取connectionId(用户刷新页面时更改):var connectionId = $.connection.hub.id;

标签: javascript asp.net angularjs signalr


【解决方案1】:

由于 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.
  • 附注当用户关闭选项卡/浏览器或用户刷新页面时,signalR 触发 OnDisconnected() 方法

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-12-07
    • 1970-01-01
    • 2014-01-21
    • 2019-06-15
    • 2015-08-14
    • 2014-09-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多