我遇到了麻烦SignalR服务器端集线器代码来调用JS客户端的方法。 相反的是工作的罚款 - 所以当我的客户端发送消息到服务器按预期交付。 我一直很小心,以避免明显的陷阱,但我想我还是忽视的东西。 这里是我的代码:
从MessageHub.cs:
public bool SendMessage( ClientMessage message )
{
...
Clients.All.addMessage("my message");
...
}
使用Javascript:
$.connection.hub.start()
.done(function () {
messageHub = $.connection.message;
// addMessage is never invoked.
messageHub.client.addMessage = function (message) {
alert('message added');
};
/* // I tried this based on some sample code but still not invoked.
messageHub.addMessage = function (message) {
alert('message added');
};
*/
// This works as expected.
messageHub.server.registerUser(userId);
...
});
正如上面提到的,我无法找到设置任何明显的不足之处,但这里有几个可能相关的要点:
- 建立连接和调用服务器端方法。
- 这也许无关紧要,但我已经试过迫使不同的传输与行为没有任何变化。
- 客户端的方法名称不以任一点的服务器的方法名称冲突。
- 我也试着将消息发送到特定的客户端连接(这实际上是我们的目标,在这种情况下)。
- 我在登录客户端和服务器上启用,但没有看到在任何情况下任何相关信息。
因此,鉴于上述情况,我失去了一些东西明显? 如果没有,什么是确定故障点的最好办法?
PS这是不具体涉及到的问题,但是,由于某种原因,提琴手不再捕获从我的任何浏览器的任何流量,这使得调试WS或HTTP流量有点挑战 - 我猜这是一个Windows 8的事情。 ..