【问题标题】:SignalR => how to subscribe to an event using jquery?SignalR => 如何使用 jquery 订阅事件?
【发布时间】:2020-03-12 05:36:54
【问题描述】:

我是 SignalR 的新手。我在下面有一个 jQuery 代码,它允许成功连接到集线器。 现在我需要订阅一个事件,比如说someEvent。我怎样才能做到这一点?根据日志的传输类型:serverSentEvents。 顺便说一句,服务器端代码对我来说是一个黑匣子,我只有事件的名称......

var hub = $.hubConnection("https://someurl/"); 

hub.logging = true;
hub.start()
    .done(function () {        
        console.log(`Connected... Hub id: ${hub.id}`);
        console.log("Transport = " + hub.transport.name);

        console.log(hub);        
    })
    .fail(function (err) {
        console.log(`Not connected: ${err}`);
    });

【问题讨论】:

    标签: jquery asp.net signalr


    【解决方案1】:

    这里有几个常见的用例和示例

    处理服务器方法/远程过程调用

    如果你想监听addContosoChatMessageToPage的方法,你可以这样做:

    var connection = $.hubConnection();
    var contosoChatHubProxy = connection.createHubProxy('contosoChatHub');
    contosoChatHubProxy.on('addContosoChatMessageToPage', function(name, message) {
        console.log(name + ' ' + message);
    });
    

    处理连接生命周期事件

    如果您想监听像 startingconnectionSlow 这样的生命周期事件,您可以这样做:

    $.connection.hub.connectionSlow(function () {
        console.log('We are currently experiencing difficulties with the connection.')
    });
    

    向服务器发送消息

    如果您想将消息发回服务器集线器,您可以这样做:

    var contosoChatHubProxy = $.connection.contosoChatHub;
    
    $.connection.hub.start().done(function () {
        // Wire up Send button to call NewContosoChatMessage on the server.
        $('#newContosoChatMessage').click(function () {
             contosoChatHubProxy.server.newContosoChatMessage($('#displayname').val(), $('#message').val());
             $('#message').val('').focus();
         });
    });
    

    进一步阅读

    查看有关使用 Hub API on the Client in Javascript 的文档 - 它们实际上非常好

    【讨论】:

    • 我已经在官方网站上红了,但它没有帮助我:(我被告知要订阅活动,没有更多信息。
    • 嘿@Yurii,对不起,尽管看起来没有帮助,但如果没有更多关于您尝试运行的代码的信息,除了一般建议之外,很难给出任何东西。这是如何你监听事件一般 - 在不了解服务器等的情况下很难调试你的环境。也许尝试运行一个教程来获得一个工作版本某处,然后看看这是否会为您的用例带来任何点击?
    • 我需要从集线器接收消息someEvent,而不是发送
    猜你喜欢
    • 2019-05-22
    • 2013-11-03
    • 1970-01-01
    • 2014-02-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多