Pertanyaan SignalR terhubung ke beberapa server


Apakah mungkin untuk menghubungkan menggunakan klien Javascript ke lebih dari satu SignalR server?

Sebagai contoh:

<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>

Mencoba untuk menghubungkan (lagi) kedua kalinya memberi saya kesalahan:

'server1Hub' Hub could not be resolved.

Bisakah saya membuat dua contoh $.connection ? Tentunya saya pikir memodifikasi yang sama connection dapat menciptakan banyak masalah.


4
2018-03-30 12:58


asal


Jawaban:


Menggunakan koneksi $ yang berbeda:

var connection1 = $.connection('/first');
connection1.start();

var connection2 = $.connection('/second');
connection2.start();

Berlangganan di beberapa hub:

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();

Baca lebih lanjut di sini: sini di bagian Tentukan metode pada klien (tanpa proxy yang dihasilkan, atau saat menambahkan setelah memanggil metode mulai)


6
2018-03-30 14:23



Terima kasih, SilentTremor. Anda menyelamatkan saya banyak waktu.

Jika Anda bekerja dengan proksi yang dihasilkan maka Anda dapat menggunakan sesuatu seperti:

var Hub1 = connection1.createHubProxies().<your hub class>

Ganti dengan kelas Anda sendiri. Kemudian hanya mendapatkan akses ke semua fungsi server dari Hub1. Contoh:

var Hub1 = connection1.createHubProxies().Chat;
...
Hub1.addMessage(name, message);

0
2018-05-25 00:03