IM_網易雲信開發


IM_網易雲信開發

一、項目目標

本項目完全依賴於第三方IM服務器網易雲信進行IM開發。

網易雲信(wyyx)能夠滿足產品基本所有的需求,本項目將所有的IM功能放到wyyx服務器上,本項目服務器需要將所有的聊天信息進行備份,及對用戶聊天權限進行設置。

二、功能實現:

1、備份:使用wyyx的“消息抄送”功能,對所有的消息進行本地數據庫備份

2、權限:使用wyyx的“第三方回調”功能,對所有的消息在操作之前進行權限設置,通過或是不通過,通過則wyyx執行,不通過則不執行。

三、具體實現:

wyyx提供“消息抄送”地址、“第三方回調”地址,都是使用http[method:post]方法進行調用,所以本服務只需要實現這兩個接口。

另外,由於wyyx直接操作的是appKey、userid、token,所以需要本服務器申請userid對應的token提供給調用者。(此方法官網有,本文不提供)

1、消息抄送:

 1 {
 2     "code": 0,
 3     "eventType": "1",
 4     "convType": "PERSON",
 5     "to": "user2",
 6     "fromAccount": "user1",
 7     "fromClientType": "WEB",
 8     "fromDeviceId": "f7aa3bce1709618cce3fec7d59ca6b1b",
 9     "msgTimestamp": "1547018907635",
10     "msgType": "TEXT",
11     "body": "hello",
12     "msgidClient": "5fc6bf14d23530fb7a9aac6085626c38",
13     "msgidServer": "248907731075",
14     "resendFlag": "0"
15 }
消息抄送內容

本服務將此消息存入數據庫

【注意】:消息會抄送多次或者消息會抄送失敗,需要對此進行處理。

2、第三方回調

 1 {
 2     "code": 0,
 3     "eventType": "1",
 4     "to": "user2",
 5     "fromAccount": "user1",
 6     "fromClientType": "WEB",
 7     "fromDeviceId": "e15b541366b36988ec58afa2721e1c57",
 8     "msgTimestamp": "1547026664403",
 9     "msgType": "TEXT",
10     "body": "hello",
11     "msgidClient": "60286e2dbab72b1216c8614ddb4209b2"
12 }
回調內容

 

1 {"errCode":0}

errCode:0(0為通過,1位不通過)

利用第三方回調可以對消息發起者或是接受者,或是消息內容進行限制。

四、測試

本程序員使用web端測試。

方法一:

源碼:直接上源碼,就是暴力。

 1 <html>
 2     <head></head>
 3     <body>
 4          <h1>雲信 Web SDK Online Test</h1>
 5     <div>
 6     <p>
 7         <span>APPKEY:</span>
 8     <input type="text" id="appkey" value="439f4cb53f344c444a8aa7a82******">
 9     </p>
10     <p>
11         <span>ACCOUNT:</span>
12         <input type="text" id="account" value="userid">
13     </p>
14     <p>
15         <span>TOKEN:</span>
16         <input type="text" id="token" value="65681ec32f24b28c00d58a1070******">
17     </p>
18     <p>
19         <button id="connect-sdk">連接SDK</button>
20     </p>
21     </div>
22     <script src="http://yx-web.nos.netease.com/official/websdk/NIM_Web_SDK_v4.8.0.js"></script>
23     </body>
24     <script>
25         function connectSDK () {
26   var appkey = document.getElementById('appkey').value
27   var account = document.getElementById('account').value
28   var token = document.getElementById('token').value
29   window.nim = SDK.NIM.getInstance({
30     appKey: appkey,
31     account: account,
32     token: token,
33     onconnect: function () {
34       alert('SDK 連接成功')
35       // 連接成功后才能發消息
36       window.nim.sendText({
37         scene: 'p2p',
38         to: 'user2',
39         text: 'hello',
40         done: function sendMsgDone (msg) {
41         }
42       })
43     },
44     ondisconnect: function (obj) {
45       console.log('SDK 連接斷開', obj)
46     },
47     onerror: function (error) {
48       console.log('SDK 連接失敗', error)
49     }
50   })
51 }
52 
53 document.getElementById('connect-sdk').addEventListener('click', function () {
54   connectSDK()
55 })
56     </script>
57 </html>
html測試源碼

需要更改3個地方:①第一個appkey請去官網申請②account③token,account與token是用戶進行聊天的驗證信息,可以通過網易雲信提供的源碼運行產生。

【注意】本html需要使用服務器才能提交業務。所以請不要直接打開html文件:file// 而應該是localhost:8080/這樣的形式。

方法二:

使用官網提供的方法:https://github.com/netease-im/NIM_Web_Demo

步驟:

1、安裝nodejs

2、打開文件NIM_Web_Demo-master,利用node的高效工具npm進行相關庫的下載

   npm install

  node app

     在瀏覽器中訪問 http://127.0.0.1:8888/webdemo/index.html(訪問成功說明配置正確)

3、修改NIM_Web_Demo-master\webdemo\im\js\config.js

  online->appkey修改為個人的appkey

4、在網易雲信官網“賬號管理”新建賬號

 

5、新建的賬號在http://192.168.1.101:8182/webdemo/im/login.html登錄

6、登錄之后可以進行常規操作測試:p2p聊天、群聊、添加好友、創建群組、創建討論組等


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM