问题
Is possible to connect using Javascript client to more than one SignalR
servers?
For example:
<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>
Trying to connect (again) the second time gives me an error:
'server1Hub' Hub could not be resolved.
Can i create two instances of $.connection
? Obviously i think modifying the same connection
can create many issues.
回答1:
Using different $connection:
var connection1 = $.connection('/first');
connection1.start();
var connection2 = $.connection('/second');
connection2.start();
Subscribing on multiple hubs:
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();
Read more here: here at section Define method on client (without the generated proxy, or when adding after calling the start method)
回答2:
Thank you SilentTremor. You saved me a lot of time.
If you are working with generated proxies then you can use something like:
var Hub1 = connection1.createHubProxies().<your hub class>
Replace with your own class. Then just get access to all server functions from Hub1. Example:
var Hub1 = connection1.createHubProxies().Chat;
...
Hub1.addMessage(name, message);
来源:https://stackoverflow.com/questions/29346882/signalr-connect-to-multiple-servers