我是node.js和socket.io的新手,按照官方socket.io网站的“入门”代码,我编写了简单的聊天。然后我想创建不同的房间,就像在信使中一样。但依靠官方文档,我自己无法做到这一点...... 这是我的服务器代码:
io.on('connection', function(socket) {
var room_name = socket.request.headers.referer; // link of the page, where user connected to socket
// connecting to room
socket.join(room_name, function(){
//trying to send messages to the current room
io.to(room_name, function () {
socket.on('chat message', function (msg) {
io.emit('chat message', msg);
});
});
});
});
还有我的客户端代码:
$(function () {
var socket = io();
//when we submit our form
$('form').submit(function(){
//we are sending data to socket.io on server
socket.emit('chat message', $('#m').val());
$('#m').val('');
return false;
});
//And then we are creating message in our html code
socket.on('chat message', function(msg){
$('#messages').append($('<li>').text(msg));
});
});
为什么这段代码不起作用?我该怎么做才能向不同的房间发送消息?
最佳答案
将此添加到服务器代码:
var room_name = socket.request.headers.referer; // link of page, where user connected to socket
//connecting to room
socket.join(room_name);
socket.on('chat message', function (msg) {
io.to(room_name).emit('chat message', msg);
});
关于javascript - socket.io 中的房间。如何发送消息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42822753/