我正在使用nodejs和socketio。我做了一個私人聊天應用程序,它向選定的用戶發送消息。套接字io將消息發送給房間中的用戶
我當前的代碼是:
chat_room.sockets.socket(user).emit(
'chat',
{
message : message,
from : sockets[socket.id].username
}
);
現在,我創建了房間,我想將消息發送到特定房間的用戶。
我想下面的代碼,但不工作
socket.get('room', function(err, room) {
chat_room.sockets.socket(room)(user).emit(
'chat',
{
message : message,
from : sockets[socket.id].username
}
);
});
它的錯,它給了我一個錯誤:
C:\Users\Niraj\Desktop\node\joomla-chat\app.js:62 chat_room.sockets.socket(room)(user).emit( ^TypeError: object is not a function at chat_room.sockets.on.socket.on.socketID (C:\Users\Niraj\Desktop\node\joomla-chat\app.js:62:45) at Client.get (C:\Users\Niraj\Desktop\node\joomla-chat\node_modules\socket.io\lib\stores\memory.js:86:3) at Socket.get (C:\Users\Niraj\Desktop\node\joomla-chat\node_modules\socket.io\lib\socket.js:258:14) at Socket.chat_room.sockets.on.socket.on.socketID (C:\Users\Niraj\Desktop\node\joomla-chat\app.js:48:16) at Socket.EventEmitter.emit [as $emit] (events.js:96:17) at SocketNamespace.handlePacket (C:\Users\Niraj\Desktop\node\joomla-chat\node_modules\socket.io\lib\namespace.js:335:22) at Manager.onClientMessage (C:\Users\Niraj\Desktop\node\joomla-chat\node_modules\socket.io\lib\manager.js:487:38) at WebSocket.Transport.onMessage (C:\Users\Niraj\Desktop\node\joomla-chat\node_modules\socket.io\lib\transport.js:387:20) at Parser. (C:\Users\Niraj\Desktop\node\joomla-chat\node_modules\socket.io\lib\transports\websocket\hybi-16.js:39:10) at Parser.EventEmitter.emit (events.js:96:17)
我怎樣才能將消息發送到房間的特定用戶
- - - - - - - - - - - - - - - -編輯 - - - - - - - - - ---------- 所以如果我這樣做:
socket.get('room', function(err, room) {
chat_room.sockets.socket(user).emit(
'chat',
{
message : message,
from : sockets[socket.id].username
}
);
});
那麼這將觸發消息,X先生到ABC房間
我說得對不對?
變量'user'是什麼?你如何與他們聯繫將取決於你有什麼信息(例如,如果你有他們的socket.id,它將只是一個簡單的socket.emit) – Ari
其郵件交付對象的人的插座ID –
在那你只需要爲該用戶做一個socket.emit;不要緊,他們在一個房間裏,傳統的發射仍將工作相同 – Ari