Untuk mengirim sesuatu ke semua klien, Anda menggunakan:
io.sockets.emit('response', data);
Untuk menerima dari klien, Anda menggunakan:
socket.on('cursor', function(data) {
...
});
Bagaimana saya bisa menggabungkan keduanya sehingga saat menerima pesan di server dari klien, saya mengirim pesan itu ke semua pengguna kecuali yang mengirim pesan?
socket.on('cursor', function(data) {
io.sockets.emit('response', data);
});
Apakah saya harus memutarnya dengan mengirim id klien dengan pesan dan kemudian memeriksa sisi klien atau apakah ada cara yang lebih mudah?
javascript
node.js
socket.io
switz
sumber
sumber
io
here.onlysocket
// sending to all clients except sender
, untuk apa digunakan// sending a response to sender client only
?socket.to('others').emit('an event', { some: 'data' });
juga siaran di sebuah ruangan.Dari jawaban @LearnRPG tetapi dengan 1.0:
Untuk menjawab komentar @Crashalot,
socketid
berasal dari:sumber
socketid
mengirim ke soket individual?socket.id
dari objek soket Anda.Berikut ini adalah jawaban yang lebih lengkap tentang apa yang telah berubah dari 0.9.x ke 1.x.
Saya ingin mengedit posting @soyuka tetapi hasil edit saya ditolak oleh peer-review.
sumber
broadcast.emit mengirim pesan ke semua klien lain (kecuali pengirim)
sumber
Keluarkan cheatsheet
sumber
Untuk ruang nama di dalam ruangan yang melingkar daftar klien di ruangan (mirip dengan jawaban Nav) adalah salah satu dari hanya dua pendekatan yang saya temukan yang akan bekerja. Yang lainnya adalah menggunakan exclude. MISALNYA
sumber
Kasus lainnya
sumber
Memperbarui daftar untuk dokumentasi lebih lanjut.
Semoga ini membantu.
sumber
gunakan kode ini
socket.broadcast.emit () ini akan memancarkan apapun dalam fungsi kecuali ke server yang memancarkan
sumber
io
dalam ini jika callback didefinisikan dalam file antherio
globalSaya menggunakan ruang nama dan kamar - saya temukan
untuk bekerja dimana
tidak
(harus ada orang lain yang menghadapi masalah itu)
sumber