SignalR 消息未毫无错误地发送到客户端

SingalR message not sent to the client without any errors

我有一个集线器 class:

 public class OrderHub : Hub
    {
        public override Task OnConnected()
        {
            Clients.Caller.orderMessage("New connection");
            return base.OnConnected();
        }

        public static void SendOrderMessage(string msg)
        {
            var hubContext = GlobalHost.ConnectionManager.GetHubContext<OrderHub>();
            hubContext.Clients.All.orderMessage(msg);
        }
    }

正在调用静态方法的事件处理程序:

    public async Task Handle(IOrderProcessedEvent message, IMessageHandlerContext context)
    {
        // Here we could write a code with SignalR to notify the page about successful process

        while (true)
        {
            await Task.Delay(1000);

            //orderHub.OrderMessage("Order processed successfully");
            OrderHub.SendOrderMessage("Order processed successfully");
        }
    }

还有一个应该记录消息的简单 JavaScript 代码(这是一个非常简化的示例):

@section scripts{
    <script src="~/Scripts/jquery-1.9.1.min.js"></script>
    <script src="~/Scripts/jquery.signalR-2.4.1.min.js"></script>
    <script src="/signalr/hubs"></script>
    <script language="javascript">
        $(function () {
            var hub = $.connection.orderHub;
            console.log("hub initiated");

            hub.orderMessage = function (msg) {
                console.log(msg);


            };

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

缺少一些东西,因为从未调用过该函数,不是从 OnConnected 调用,也不是从静态方法调用。

console.log("hub initiated"); 行被打印,hub 变量有效,但实际的 function(msg) 永远不会被调用。

我错过了什么?

你错过了"client":

hub.client.orderMessage = function (msg) {
            console.log(msg);


        };