看板 PHP 關於我們 聯絡資訊
如題 最近在用websocket實現聊天室功能 我想問的是,如果後端socket只開某一個port(例如8088)的情形下 Server有辦法只送訊息給某個連上此socket的人,而其他一樣有連上此socket的人則不傳 送? 也就是socket有沒有辦法只將訊息推送給某個指定的人就好? 譬如說,今天有A、B、C、D、E五個用戶同時連上port為8088的websocket聊天室 如果後端伺服器要發送訊息給Client 端,好像只能將訊息廣播給所有人,而沒法選擇性 只傳送給例如說B而已 如果要實現此功能,似乎只能再開另一個port,而且開另一個port別的人不知道是不是也 能偷窺B和伺服器之間的對話? 所以說有辦法在伺服器只開某一個port的情況下,只將訊息傳送給某人,而非廣播給所有 連上該port的所有用戶? 另外,也如何防止他人輸入port就可以偷窺別人的訊息交流? -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 39.13.39.34 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/PHP/M.1588665955.A.C68.html
MOONRAKER: 登入阿05/05 17:56
MOONRAKER: 有人從websocket來了=>叫他拿token和簽章出來05/05 17:57
MOONRAKER: token和簽章都對=>資料給他05/05 17:57
MOONRAKER: token或簽章不對=>跟他說40405/05 17:57
謝謝 那麼第一個問題該怎麼解決呢? 不想讓伺服器再開額外的port卻可以選擇性傳訊息給指定的某個在線使用者,請問這個有 辦法做得到嗎? 還是說每增加一人,就得必須再開額外的port才行? 謝謝 ※ 編輯: freebug (39.13.39.34 臺灣), 05/05/2020 18:40:00 沒事了 剛才自己解決了第一個問題了 用getClients()去取要給哪個使用者就行了 感謝回答 ※ 編輯: freebug (118.169.166.94 臺灣), 05/05/2020 19:24:36