簡體   English   中英

Socket.IO將數據發送到我自己的房間

[英]Socket.IO emit data into a room to myself

我正在構建一個聊天應用程序,我想在其中啟動兩個用戶之間的最后一條消息。

這是我在前端執行的操作,因此從數據庫中加載舊的messageList:

socket.emit('get messageList', data);

在后端,我將消息加載到messages然后嘗試將它們發回。 我不想broadcast.emit因為我想在會話中而不是在聊天伙伴中加載數據。

socket.in(roomId).emit('send messageList', messages);

當我執行此代碼時,聊天伙伴的messageList會刷新。 基本上與

socket.in(roomId).broadcast.emit('send messageList', messages);

在我布置房間之前

socket.emit('send messageList', messages);

會按照我的期望更新我的列表。 但是由於我將代碼與房間一起使用,因此不再起作用。

我的問題:

  • 這是為什么?
  • 是否可以使用socket.io將數據從后端發送回客戶端?
  • 還是我做錯了什么?

我將在評論中做出評論,因為這似乎對您有用。

如果您只是想響應發送請求的客戶端,則只需將socket.emit()返回到請求的套接字即可。 您只是想回應發件人,所以您不會做其他任何事情,僅因為正在使用聊天室。 無論聊天室使用情況如何,響應都會轉到要求它的套接字。

要發送到單個客戶端,您只需發送到該客戶端的套接字。 如果要發送給該房間中的所有客戶端或房間中除一個客戶端之外的所有客戶端,則僅使用聊天室來幫助發送。

socket.nsp.to(room).emit('room_message','hello world')

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM