Jon*_*lis 1 c# asp.net-mvc signalr signalr-hub
我仍然得到SignalR的基础知识.我想在我的网站的不同部分使用它,所以我想我可以在主布局中启动连接,并在子视图中添加客户端方法.
根据这个答案,我有:
window.hub = $.connection.hub.start();
Run Code Online (Sandbox Code Playgroud)
在我的Layout.cshtml中,和
window.hub.done(function () {
$.connection.notificationHub.server.joinScannerGroup(1);
alert("in sub view");
});
Run Code Online (Sandbox Code Playgroud)
在我的子视图中,哪个有效.集线器已连接,并且JoinScannerGroup()调用该方法.但是,如果我尝试添加:
$.connection.notificationHub.client.scanReceived = function (text) {
alert("scan received");
};
Run Code Online (Sandbox Code Playgroud)
在子视图的javascript中的任何地方,它永远不会被调用.也许我认为它错了,但我想在主页上连接,然后允许任何子页面接收客户端调用.
此外,如果我移动$.connection.start()到子视图,它确实可以正常工作.我理解错了吗?
您需要在调用之前添加所有客户端集线器方法hub.start(),或者在调用之前需要添加至少一个集线器方法hub.start()(因此SignalR将订阅集线器),然后添加所有其他集线器方法,如下所示:
$.connection.notificationHub.on('scanReceived ', function (text) {
alert("scan received");
});
Run Code Online (Sandbox Code Playgroud)
(另见文件)
| 归档时间: |
|
| 查看次数: |
311 次 |
| 最近记录: |