javascript - SignalR 不会触发客户端回调

标签 javascript c# asp.net signalr

我目前正在加快使用 SignalR 的速度,并尝试使用我对 SignalR 的基本了解来构建一个非常基本的消息通知系统,但我无法在提交后返回消息。

我已经阅读了许多有关该主题的博客,最基本的是有一个 VOID 方法,该方法接受字符串值,然后通过将其附加到客户端上下文来将其传回,但是,这不起作用,因为 onReceiveNotification() 在 JS 调试器中始终未定义?

我是不是漏掉了什么

notificationhub.cs

[HubName("notificationHub")]
public class NotificationHub : Hub
{

    public override System.Threading.Tasks.Task OnConnected()
    {
        return base.OnConnected();
    }

    public override System.Threading.Tasks.Task OnDisconnected(bool stopCalled)
    {
        return base.OnDisconnected(stopCalled);
    }

    public override System.Threading.Tasks.Task OnReconnected()
    {
        return base.OnReconnected();
    }

    [HubMethodName("sendNotifications")]
    public void SendNotifications(string message)
    {
        Clients.All.onRecieveNotification(string.Format("{0} {1}", message, DateTime.Now.ToString()));
    }
}

message.html页面

<div>
    <input type="text" id="messageinput" />
    <button id="notifybutton">Send Message</button>
</div>

<script src="Scripts/jquery-2.1.4.min.js"></script>
<script src="Scripts/jquery.signalR-2.2.0.min.js"></script>
<script src="signalr/hubs"></script>
<script type="text/javascript">
    jQuery(document).ready(function ($)
    {
        var $hub = $.connection.notificationHub;
        $.connection.hub.start();

        $(document).on("click", "#notifybutton", {}, function (e)
        {
            e.preventDefault();
            var $message = $("#messageinput").val();
            $hub.server.sendNotifications($message);
        });
    });
</script>

display.html

<div>
    <ul id="messages"></ul>
</div>

<script src="Scripts/jquery-2.1.4.min.js"></script>
<script src="Scripts/jquery.signalR-2.2.0.min.js"></script>
<script src="signalr/hubs"></script>
<script type="text/javascript">
    jQuery(document).ready(function ($)
    {
        var $hub = $.connection.notificationHub;

        $hub.onRecieveNotification = function (message)
        {
            $("#message").append($("<li></li>", { text: message }));
        }

        $.connection.hub.start();
    });
</script>

最佳答案

您似乎缺少客户端:

   $hub.client.onRecieveNotification = function (message)
    {
        $("#message").append($("<li></li>", { text: message }));
    }

关于javascript - SignalR 不会触发客户端回调,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30842270/

相关文章:

c# - 如何在javascript中计算两个日期时间之间的差异?

c# - .net 核心控制台应用程序作为 Windows 服务-是否可以在不使用 Kill() 方法的情况下安全地终止已启动进程的执行?

C# 相当于 javascript 的 toSource()

c# - 如何在 C# 中更改 Excel 工作表列的格式?

javascript - 使用 jquery 在 asp.net 中自动完成

c# - 无法通过c#.net下载exe文件

javascript - 使用正则表达式匹配字符串中的对象的对象属性

javascript - 在 Google Drive API 中,如何区分不存在的文件和用户无权访问的文件?

javascript - Ember JS : Fetch a Single Attribute of a Model After the Model is Fetched

javascript - JQuery 仅显示默认 Div