Tôi đang sử dụng node.js và socket.io để tạo một ứng dụng trò chuyện. Làm thế nào để gửi tin nhắn đến ổ cắm khác, tôi biết id của ổ cắm hoặc tên người dùng chỉ. Không có phòng, khách hàng trò chuyện trực tiếp với nhau.Gửi tin nhắn đến một ổ cắm duy nhất
8
A
Trả lời
21
Với Socket.IO, bạn không bị giới hạn chỉ sử dụng đối tượng ổ cắm trong hàm gọi lại của hàm kết nối. Bạn có thể tạo một đối tượng lưu trữ đối tượng socket cho một tên người dùng cụ thể và tra cứu socket để gửi một thông điệp đến khi một client phát ra một thông điệp. Bạn sẽ cần phải truyền tải mục tiêu dự định với mọi thông báo.
Ví dụ:
var sockets = {};
...
io.on('connection', function(socket){
socket.on('set nickname', function (name) {
sockets[name] = socket;
});
socket.on('send message', function (message, to) {
sockets[to].emit(message);
});
});
Xem thêm các ví dụ trên examples page of Socket.IO's website.
0
Bạn có thể kiểm tra tài sản tên người dùng của tất cả các ổ cắm như thế này:
socket.on('send message', function(message,to){
io.sockets.clients().forEach(function (socket) {
if (socket.username==to){socket.emit(message);}
});
});
Các vấn đề liên quan
- 1. ổ cắm luồng gửi/nhận tin nhắn quảng bá?
- 2. Android nghe tin nhắn từ ổ cắm máy chủ
- 3. Lỗi ổ cắm: 90: Tin nhắn quá dài
- 4. Trong trường hợp nào các ổ cắm ZeroMQ bị rơi hoặc không gửi được tin nhắn?
- 5. SignalR gửi tin nhắn tới một kết nối duy nhấtId
- 6. cách tốt nhất để gửi tin nhắn cho chủ đề
- 7. Ổ cắm có đáng tin cậy không?
- 8. Đăng nhập tin nhắn gửi đến nil?
- 9. C++ gửi tập tin và văn bản qua ổ cắm
- 10. android ổ cắm DataOutputStream.writeUTF
- 11. Gửi tin nhắn GCM đến người dùng cụ thể
- 12. Gửi tin nhắn đến người dùng qua tín hiệu django
- 13. Gửi tệp qua ổ cắm bằng Python
- 14. Gửi ổ cắm int qua trong Java
- 15. Python không phát hiện một ổ cắm đóng cửa cho đến thứ hai gửi
- 16. NT Eventlog kích thước tin nhắn duy nhất
- 17. Gửi tin nhắn SMS/Tin nhắn văn bản qua PHP
- 18. Gửi gói với ổ cắm từ mô-đun hạt nhân
- 19. Gửi tin nhắn đến chương trình qua dòng lệnh
- 20. Gửi khung hình video qua ổ cắm
- 21. Gửi tin nhắn đến khách hàng cụ thể với socket.io và hàng đợi tin nhắn rỗng
- 22. Gửi tin nhắn từ ứng dụng đến người dùng facebook
- 23. cách gửi tin nhắn từ dịch vụ đến hoạt động
- 24. Cách phát tin nhắn bằng cách sử dụng ổ cắm UDP cục bộ?
- 25. chuyển tập tin ổ cắm android
- 26. Gửi tin nhắn sms dài
- 27. Tách một ổ cắm riêng khỏi ổ cắm của Boost.ASIO
- 28. Lập trình mạng: để duy trì ổ cắm hay không?
- 29. Ổ cắm có thể được đóng từ một sợi khác khi gửi/recv trên cùng một ổ cắm không?
- 30. git pull - không thể gửi tin nhắn hợp nhất
lớn, đó là giải pháp –
Làm thế nào để xử lý "thành" được không thuộc về bất cứ nickname? Ví dụ; Biệt hiệu "A" được gửi thông điệp tới Biệt hiệu "B", Biệt hiệu "B" sẽ gửi thư đến Biệt hiệu "C". Và không có biệt hiệu "C" Sau đó đưa ra lỗi = "không thể đọc thuộc tính 'phát ra' không xác định" – drojokef