天天看點

仿微信即時通訊SDK-解決socket.io無法接受消息的BUG仿微信即時通訊SDK-解決socket.io無法接受消息的BUG

仿微信即時通訊SDK-解決socket.io無法接受消息的BUG

E聊是免費開源的IM架構, 使用它可以快速二次開發聊天應用。

1. 現象

使用Web版登入,打開一個好友聊天框,發消息時可以正常發送出去。但好友發往該登入使用者的消息無法在聊天框展示,但朋友清單左側出現消息提示數量。

2. 問題定位

可以顯示消息提示證明用戶端的确收到了消息,但因為某些原因無法在用戶端上展示。可以通過觀察ws下行消息。如下圖:

仿微信即時通訊SDK-解決socket.io無法接受消息的BUG仿微信即時通訊SDK-解決socket.io無法接受消息的BUG

用戶端收到了服務發過來的ws消息,并傳回了應答消息。

是以,問題應該在下行消息處理,vue展示等方面。

3. 問題解決

經參考E聊其他消息在聊天框展示的代碼,補全Message消息的結構後,問題得到解決。

問題代碼

// 加入剛剛收到的資訊到聊天視窗
this.chatsContent.chats.push({
  toMe: 1,
  body: message.body,
  createTime: new Date().toLocaleString() 
});
           

修複後

// 加入剛剛收到的資訊到聊天視窗
const msgReceive = {
  avatar: message.toTargetAvatar,
  body: message.body,
  createTime: new Date().toLocaleString(),
  fromUser: message.fromUser,
  fromUserAvatar: message.fromUserAvatar,
  fromUserName: message.fromUserName,
  toMe: 1,
  toTarget: message.toTarget,
  toTargetAvatar: message.toTargetAvatar,
  toTargetName: message.toTargetName,
  type: message.type,
  way: message.way,
};
this.chatsContent.chats.push(msgReceive);
           

進入官網

SDK版本:v1.02

技術交流QQ群: 471688937

繼續閱讀