溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Web SDK如何實現(xiàn)只有一個設備登入

發(fā)布時間:2021-12-18 13:54:22 來源:億速云 閱讀:101 作者:柒染 欄目:云計算

Web SDK如何實現(xiàn)只有一個設備登入,相信很多沒有經(jīng)驗的人對此束手無策,為此本文總結了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個問題。

背景

在集成融云的即時通訊時,產(chǎn)品腦門一拍說:咋們要實現(xiàn)一個功能,不管是 Web 端還是移動端登入,必須只能一個端登入成功并且后登入成功的賬號需要踢掉前面登入的賬號。

咋的一聽感覺還蠻簡單的,融云不是有一個服務嘛:叫做多設備消息同步,我把該服務關掉不就行了~~ O(∩_∩)O哈哈~

但是我想的太簡單了,服務關掉之后 Web 端的確可以進行互踢了,但是移動端和 Web 端還是可以在線呀,原來默認的情況下,融云僅支持 1 個 Web 端、1 個 桌面端、1 個移動端同時在線

這個是融云多端同時在線詳情:https://docs.rongcloud.cn/v4/views/im/noui/guide/group/connection/multiclient/

話不多說,開始揭開謎底

1、首先將多設備消息同步 - 關閉,關閉連接:https://developer.rongcloud.cn/advance/index/YTrydqMSdEsmBtX2zX0Amg

2、這時如果多端登入狀態(tài)監(jiān)聽會監(jiān)聽到狀態(tài)碼 6 時,執(zhí)行斷開鏈接

代碼示例

im.watch({  conversation: function(event){    var updatedConversationList = event.updatedConversationList; // 更新的會話列表    console.log('更新會話匯總:', updatedConversationList);    console.log('最新會話列表:', im.Conversation.merge({        conversationList,        updatedConversationList      }));  },  message: function(event){    var message = event.message;    console.log('收到新消息:', message);  },  status: function(event){     console.log('連接狀態(tài)碼:', status);     var status = event.status;     if(status == 6){       im.disconnect().then(function() {        console.log('斷開鏈接成功');       });     }  }});

3、通過發(fā)送自定義消息,來執(zhí)行斷開連接方法

比如您有兩個設備 A,B,用戶開始在 A 設備登入,然后再 B 設備登入成功后給自己或者給別人發(fā)一條自定義消息,A 設備在監(jiān)聽中根據(jù)該自定義消息判斷,調用斷開連接方法,即可做到只有一個設備登入

//發(fā)送自定義消息var conversation = im.Conversation.get({  targetId: '接收方的 userId',  type: RongIMLib.CONVERSATION_TYPE.PRIVATE});conversation.send({  messageType: 's:person', // 填寫開發(fā)者定義的 messageType  content: { // 填寫開發(fā)者定義的消息內(nèi)容    name: 'RongCloud',    age: 12  },  isPersited: true,// 是否存儲在服務端,默認為 true  isCounted: true  // 是否計數(shù). 計數(shù)消息接收端接收后未讀數(shù)加 1,默認為 true}).then(function(message){  console.log('發(fā)送 s:person 消息成功', message);});

通過上面的步驟,就可以實現(xiàn)只能單設備登入了,但是需要注意您使用的 SDK 版本,一開始我用 3.0.5 SDK 來做,但是有一個問題:執(zhí)行斷開連接還是會進行重連,所以要使用 SDK 3.0.6 版本以上的 SDK 哦

看完上述內(nèi)容,你們掌握Web SDK如何實現(xiàn)只有一個設備登入的方法了嗎?如果還想學到更多技能或想了解更多相關內(nèi)容,歡迎關注億速云行業(yè)資訊頻道,感謝各位的閱讀!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內(nèi)容。

AI