SignalR 连接到多个服务器
SignalR connect to multiple servers
是否可以使用 Javascript 客户端连接到多个 SignalR
服务器?
例如:
<script type="text/javascript">
$.connection.hub.url = 'http://server1.net/signalr';
var server1Hub = $.connection.server1Hub;
$.connection.hub.start().done(function () {
});
// i need to connect to server2
$.connection.hub.url = 'http://server2.net/signalr';
var server2Hub = $.connection.server2Hub;
$.connection.hub.start().done(function () {
});
</script>
第二次尝试(再次)连接时出现错误:
'server1Hub' Hub could not be resolved.
我可以创建两个 $.connection
实例吗?显然我认为修改相同的 connection
会产生很多问题。
使用不同的 $connection:
var connection1 = $.connection('/first');
connection1.start();
var connection2 = $.connection('/second');
connection2.start();
在多个集线器上订阅:
var connection1 = $.hubConnection("'http://server1.net/signalr");
var connection2 = $.hubConnection("http://server2.net/signalr");
var Hub1= connection1.createHubProxy('Hub1');
var Hub2= connection2.createHubProxy('Hub2');
connection1.start();
connection2.start();
在此处阅读更多内容:
here 在 部分在客户端定义方法(没有生成代理,或者在调用 start 方法后添加)
谢谢 SilentTremor。你节省了我很多时间。
如果您正在使用生成的代理,那么您可以使用类似的东西:
var Hub1 = connection1.createHubProxies().<your hub class>
替换为你自己的class。然后只需从 Hub1 访问所有服务器功能。示例:
var Hub1 = connection1.createHubProxies().Chat;
...
Hub1.addMessage(name, message);
是否可以使用 Javascript 客户端连接到多个 SignalR
服务器?
例如:
<script type="text/javascript">
$.connection.hub.url = 'http://server1.net/signalr';
var server1Hub = $.connection.server1Hub;
$.connection.hub.start().done(function () {
});
// i need to connect to server2
$.connection.hub.url = 'http://server2.net/signalr';
var server2Hub = $.connection.server2Hub;
$.connection.hub.start().done(function () {
});
</script>
第二次尝试(再次)连接时出现错误:
'server1Hub' Hub could not be resolved.
我可以创建两个 $.connection
实例吗?显然我认为修改相同的 connection
会产生很多问题。
使用不同的 $connection:
var connection1 = $.connection('/first');
connection1.start();
var connection2 = $.connection('/second');
connection2.start();
在多个集线器上订阅:
var connection1 = $.hubConnection("'http://server1.net/signalr");
var connection2 = $.hubConnection("http://server2.net/signalr");
var Hub1= connection1.createHubProxy('Hub1');
var Hub2= connection2.createHubProxy('Hub2');
connection1.start();
connection2.start();
在此处阅读更多内容: here 在 部分在客户端定义方法(没有生成代理,或者在调用 start 方法后添加)
谢谢 SilentTremor。你节省了我很多时间。
如果您正在使用生成的代理,那么您可以使用类似的东西:
var Hub1 = connection1.createHubProxies().<your hub class>
替换为你自己的class。然后只需从 Hub1 访问所有服务器功能。示例:
var Hub1 = connection1.createHubProxies().Chat;
...
Hub1.addMessage(name, message);