我无法获取SignalR服务器端中心代码来调用JS客户端方法。反过来工作正常 - 所以当我的客户端发送消息到服务器时,它按预期发送。我一直很小心避免出现明显的陷阱,但我想我仍然可以忽略一些东西。这里是我的代码:未调用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);
...
});
正如上面提到的,我无法找到设置,但这里的任何明显的缺陷有几个可能相关的要点:
- 建立连接并调用服务器端方法。
- 这可能是不相关的,但我试过强迫不同的运输行为没有改变。
- 客户端方法名称在任何时候都不与服务器方法名称冲突。
- 我也尝试将消息发送到特定的客户端连接(在这种情况下实际上是目标)。
- 我在客户端和服务器上都启用了日志记录,但在任何情况下都没有看到任何相关内容。
因此,鉴于上述情况,我失去了一些东西明显?如果不是,确定故障点的最佳方法是什么?
P.S.这与问题没有特别的关系,但由于某种原因,Fiddler不再捕获任何浏览器的任何流量,这使得调试WS或HTTP流量有点具有挑战性 - 我猜这是Windows 8的事情。 。
你完全保存了我的一天,¡ – vfportero
太棒了!非常感谢! – Oleg
这是非常重要的提示!你救了我几天:)谢谢! –