SignalR OnConnected和OnDisconnected未触发

Dav*_*uge 8 asp.net signalr

我在Hub中没有触发OnConnected和OnDisconnected覆盖时遇到问题.

出于复制目的,我有一个非常简单的Hub:

public class OnlineHub : Hub
{
    public void TestMethod()
    {
        var a = 1;
    }

    public override System.Threading.Tasks.Task OnConnected()
    {
        return Clients.All.connected(Context.ConnectionId, DateTime.Now.ToString());
    }

    public override System.Threading.Tasks.Task OnDisconnected()
    {
        return Clients.All.disconnected(Context.ConnectionId, DateTime.Now.ToString());
    }
}
Run Code Online (Sandbox Code Playgroud)

和一个aspx页面:

<script type="text/javascript">
    $(function () {
        $("#btn").click(function () {
            $.connection.onlineHub.server.testMethod();
        });

        $.connection.onlineHub.server.connected = function (id, date) {
            $("#results").append("connected: " + id + " : " + date + "</br>");
        };

        $.connection.onlineHub.server.disconnected = function (id, date) {
            $("#results").append(("connected: " + id + " : " + date + "</br>");
        };

        $.connection.onlineHub.connection.start();
    });

</script>
Run Code Online (Sandbox Code Playgroud)

我正在使用jQuery 1.6.4和signalR 1.0.0-alpha2.客户端连接和断开连接的方法未被执行.如果我在OnConnected或OnDisconnected中放置一个断点,则断点不会被击中.

当我的TestMethod调用ok并且我从signalR的协商调用中获得connectionId时,正在建立连接.

我确定我错过了一些简单的事情.

提前致谢.

Dun*_*art 12

您的客户端处理程序应该如下所示:

$.connection.onlineHub.client.connected = function(){...}
Run Code Online (Sandbox Code Playgroud)

  • 我很确定我是对的!https://github.com/SignalR/SignalR/wiki/SignalR-JS-Client (2认同)

Thu*_*kwa 6

事实证明,在脚本上,您需要为集线器上引发的事件定义至少一个客户端回调.当预期OnConnected和OnDisconnected被调用时要小心.