相关疑难解决方法(0)

SignalR Client Hub上的On事件不会被调用

我似乎与SignalR的JS Client Hub有问题.

问题是'on'处理程序似乎不起作用 - 它不会产生错误,但不会接收服务器发送的任何信号.下面的代码显示了一个提取,我调用服务器(使用调用)工作正常 - 然后在服务器上我回调acceptHubData应该在客户端上获取但不是.

我的目标是当导航到页面时,每个页面将打开与特定集线器的连接,并在用户移动到另一个页面时释放此连接!

编辑:使用以下代码片段工作,但我想知道为什么下面的代码使用'on'事件不起作用!

    var superHub = $.connection.mySuperHub;

    superHub.client.acceptHubData = function (data) {
        $('<li>hello there' + data + '</li>').prependTo($('#ul1'))
    }

    $.connection.hub.start().done(function () {
        $('<li>done phase 1</li>').prependTo($('#ul1'))
    });
Run Code Online (Sandbox Code Playgroud)

任何帮助将非常感激!

这是客户端代码(以js为单位)

$(document).ready(function () {

    var myHub;

    try {

        var connection = $.hubConnection();

        connection.start().done(function () {

            myHub = connection.createHubProxy("mySuperHub");

            myHub.on('acceptHubData', function (data) {
                alert(data);   // THIS IS NOT CALLED!
            });

            myHub.invoke('AcceptSignal', "hello from the client2");

        });

    }
    catch (e) {
        alert(e.message);
    }
});
Run Code Online (Sandbox Code Playgroud)

这是服务器代码:

[HubName("mySuperHub")]
public …
Run Code Online (Sandbox Code Playgroud)

signalr signalr-hub

17
推荐指数
1
解决办法
2万
查看次数

SignalR:如何在集线器启动后添加客户端呼叫?

首先,我刚开始尝试将SignalR 2添加到现有的Angular SPA项目中.

我有一个主控制器,它立即启动集线器,向客户端发送一些消息.在里面,我有几个子页面,每个子页面都可以订阅不同的服务中心.问题是客户端没有收到消息,因为它已在主控制器中已启动集线器后连接.

作为测试,如果我在主控制器中注释出集线器启动,则子控制器中的集线器工作正常.

根据我的阅读,您需要在启动集线器之前连接所有客户端调用.我不明白......如果它是一项服务,我应该可以在集线器启动后随时订阅或取消订阅.为什么不?如何解决?

signalr angularjs

6
推荐指数
1
解决办法
3207
查看次数

标签 统计

signalr ×2

angularjs ×1

signalr-hub ×1