SignalR从集线器外部呼叫客户端不起作用

时间:2014-01-21 08:55:52

标签: asp.net signalr signalr-hub

我正在使用一个非常简单的示例来评估SignalR,以便能够从服务器调用客户端。我在一个空的Visual Studio Web应用程序 - Visual Studio 2012中使用Nuget安装了最新版本的SignalR。场景是:我有一个aspx Publisher,它通过单击发布按钮从代码中推送消息。有一个html客户端应该接收消息。下面的代码不确定为什么消息没有传递给客户端。我没有错误消息。 SignalR Owin启动称为ok。如果我键入/ Signalr / hubs url,我会收到SignalR消息。

代码是: 轮毂:

namespace SignalRTest2
{
    public class TestHub : Hub
    {

        // not needed??
    }
}

出版商:

public partial class Publisher : System.Web.UI.Page
{
    protected void cmdBroadcast_Click(object sender, EventArgs e)
    {
        var testHub = GlobalHost.ConnectionManager.GetHubContext<TestHub>();
        testHub.Clients.All.clientSendMessage(txtMessage.Text);
    }
}

客户端:

<head>

<script src="Scripts/jquery-1.6.4.min.js"></script>
<script src="Scripts/jquery.signalR-2.0.1.min.js"></script>
<script src="/signalr/hubs"></script>

<title></title>

<script type="text/javascript">

    //Proxy created on the fly
    var myHub = $.connection.testHub;

    // Declare a function on the chat hub so the server can invoke it
    myHub.clientSendMessage = function (message) {
        //$("#messages").append("<li>" + message + "</li>");
        alert(message);
    };

    $.connection.hub.start()

</script>

1 个答案:

答案 0 :(得分:1)

结帐docs。 myHub.client.clientSendMessage就是你想要的。