Sorun gördüğüm kadarıyla bu kod da
socket.on('chat', function(msg){
io.emit('chat', msg);
});
io.emit yaparsan o sockete bağlı bütün clientlere data gönderirsin senin de dediğin gibi mesajları
göndereceğin yeri sınırlamak için room kullanılıyor
Bu kod da gelen room'a bağlanıyorsun fakat o room'a mesaj göndermiyorsun.
socket.on('room', function(room) {
socket.join(room);
});
Altta ki kod ile yapmak sadece bağlandığın odaya mesaj gönderirsin.
io.on('connection', socket => {
socket.on('room', room => {
socket.join(room);
socket.joinRoom = room; // Eğer birden çok odaya bağlanacaksan joinRoom'u array olarak da tanımlayabilirsin.
});
socket.on('chat', msg => {
io.to(socket.joinRoom).emit('chat', msg);
});
});
Son soruna gelecek olursak kullanıcıların özel olarak birbiriyle mesajlaşması için socket.id kullanılıyor.
socket.on('chat', msg => {
io.in(socket.id).emit('chat', msg); // io.in ve io.to aynı işi yapıyor.
});
Eğer yapılmış chat kodlarını incelemek istersen benim de daha yeni geliştirmiş olduğum chat'in kodlarına bakabilirsin.
Chat Kodları
Hatalı veya eksik bilgi vermiş olabilirim bende pek bilmiyorum socket.io yu :)
Sorun gördüğüm kadarıyla bu kod da
socket.on('chat', function(msg){
io.emit('chat', msg);
});
io.emit yaparsan o sockete bağlı bütün clientlere data gönderirsin senin de dediğin gibi mesajları
göndereceğin yeri sınırlamak için room kullanılıyor
Bu kod da gelen room'a bağlanıyorsun fakat o room'a mesaj göndermiyorsun.
socket.on('room', function(room) {
socket.join(room);
});
Altta ki kod ile yapmak sadece bağlandığın odaya mesaj gönderirsin.
io.on('connection', socket => {
socket.on('room', room => {
socket.join(room);
socket.joinRoom = room; // Eğer birden çok odaya bağlanacaksan joinRoom'u array olarak da tanımlayabilirsin.
});
socket.on('chat', msg => {
io.to(socket.joinRoom).emit('chat', msg);
});
});
Son soruna gelecek olursak kullanıcıların özel olarak birbiriyle mesajlaşması için socket.id kullanılıyor.
socket.on('chat', msg => {
io.in(socket.id).emit('chat', msg); // io.in ve io.to aynı işi yapıyor.
});
Eğer yapılmış chat kodlarını incelemek istersen benim de daha yeni geliştirmiş olduğum chat'in kodlarına bakabilirsin.
Chat Kodları
Hatalı veya eksik bilgi vermiş olabilirim bende pek bilmiyorum socket.io yu :)