zoukankan      html  css  js  c++  java
  • 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-masterwebdemoimjsconfig.js

      online->appkey修改为个人的appkey

    4、在网易云信官网“账号管理”新建账号

    5、新建的账号在http://192.168.1.101:8182/webdemo/im/login.html登录

    6、登录之后可以进行常规操作测试:p2p聊天、群聊、添加好友、创建群组、创建讨论组等

  • 相关阅读:
    External Interrupts in the x86 system. Part 1. Interrupt controller evolution
    虚拟机中断
    内核中断
    交换机三层转发vlanif
    centos 电池
    ironic port + host_id +device id
    arping
    2018-7-29-C#-强转会不会抛出异常
    2018-7-29-C#-强转会不会抛出异常
    2019-2-2-VisualStudio-扩展开发-添加菜单
  • 原文地址:https://www.cnblogs.com/carsonwuu/p/10245710.html
Copyright © 2011-2022 走看看