我想問的問題是,假設(shè)每次發(fā)的包都包含有fromUserId,content,toUserId這些字段,
$userIdToConnection[$fromUserId] = $connection;
那這句話后,他每次的$connection都是一樣的嗎?
$worker->onMessage = function ($connection, $data) {
global $userIdToConnection;
// 假設(shè)$data是一個JSON字符串,包含了發(fā)送者和接收者ID
$message = json_decode($data, true);
// 獲取發(fā)送者和接收者ID
$fromUserId =$message['fromUserId'];
$toUserId =$message['toUserId'];
$content =$message['content'];
// 將當前連接與用戶ID關(guān)聯(lián)
$userIdToConnection[$fromUserId] = $connection;
只要連接不斷開,那么這個連接發(fā)來的數(shù)據(jù)對應(yīng)的connection就是同一個
不同的連接對應(yīng)的connection是不同的
開發(fā)IM是一個比較挑戰(zhàn)的項目, 要考慮心跳, 弱網(wǎng)重連, 消息存儲, 在線離線, 多端登錄處理等等很多事情, 不建議從頭自己手寫服務(wù)端, 推薦使用webman/push 或者 gatewayWorker
另外workerman官方有提供IM聊天成品出售, 安全穩(wěn)定 地址
泡泡IM聊天源碼
99客服系統(tǒng)源碼