SignalR,消息将由服务器推送,而不会由客户端触发任何事件

时间:2014-08-12 13:06:43

标签: asp.net-mvc signalr

有SignalR的运行示例,但在那些中,我看到该过程由客户端启动,即每段代码包含以下类似的行

            $.connection.hub.start().done(function () {
                $('#mybutton').click(function () {
                    notifier.server.doLongOperation();
                });
            });

服务器上的流程从 $(' #mybutton')开始。点击然后回复。

我的理解是否正确?如果是,则可以通过服务器启动该过程吗?我的意思是服务器会将消息推送到所有客户端,而无需从客户端进行任何触发

这没有用

var context = GlobalHost.ConnectionManager.GetHubContext<Broadcast>();
context.Clients.All.Send(message);

我的错误,客户端的方法名称不正确。问题已解决

1 个答案:

答案 0 :(得分:0)

是的,可以发送服务器发起的&#34;消息&#34;从服务器到客户端。请注意,您必须在客户端上调用方法。请注意,它是RPC / Remoting类型的通信。

在服务器上,你有这样的代码:

Clients.All.Say("Hello World!");

客户端需要定义一个函数:

myHub.client.say = function (message) {
    console.log(message);
});

请参阅SignalR documentation