开放式社交公共网络(OSPN)之二十二:使用免费web3.0共享IM服务

使用免费web3.0共享IM服务

app怎样集成基于web3.0的共享IM聊天功能?

生成web3.0账号系统

  web3.0账号系统生成的代码请参见开源项目https://github.com/openbpi/ospn-share-register

  ospn-share-register项目负责生成和存储敏感数据。敏感数据也可以不存放在ospn-share-register,直接存放于app上也可以。

app如何链接到共享IM节点
  1. 下载android源码
    https://gitee.com/apowner/crossim-share-android
    将所需模块复制到自己的项目中。

  2. 设置账户服务器IP(ospn-share-register服务所在IP)
    可以不要ospn-share-register服务,将ospn-share-register中的代码移植到app中也可以。
    ospn-share-register中存储的数据

名称备注
Ec key pairEc密钥对,用于全网加密通信
Contacts通信录
IMIP共享IM节点
Face用户头像
Nickname用户昵称
osnid全网身份hash标识
  1. 设置共享IM节点IP

共享IM节点

节点IP备注
103.163.46.82共享IM节点
47.92.123.66共享IM节点
39.100.133.144共享IM节点
45.32.90.120共享IM节点(美国)
39.100.147.50托管IM节点,支持web和小程序
  1. 编译、注册并登录

  2. 验证:编译好自己的app以后,到华为市场下载“身边大爱”app,两个app可以互相添加好友,相互聊天即可说明使用成功。

在这里插入图片描述

数据流程
  1. RegisterServer生成id和ec key pair

  2. RegisterServer调用命令将osnid注册到ShareIMS,注册成功就记录下IMIP

  3. app从RegisterServer获取id、ec key pair、IMIP、Contacts、Face、Nickname

  4. app通过IMIP连接到ShareIMS

  5. app将face和nick那么分别上传到RegisterServer和ShareIMS

  6. app添加好友以后,将contacts更新到Register

  7. app发送消息以后,ShareIMS会将消息转发给其他IMS

  8. 其他IMS收到消息以后转发给用户,并记录消息来源(IP)

  9. 用户发送回执以后,将回执发送给ShareIMS。

更换共享服务

  RegisterServer将osnid注册到其他ShareIMS,APP不再连接到原来的IMS,可以发送命令给原来的IMS注销其osnid。如果不注销,原有ShareIMS由于收不到来自APP的回执,在达到一定时间以后,就会将用户消息删除,并且将用户osnid从自己的列表中删除。

安全性分析

  由于OSPN网络的整体设计是基于PKI设计的,因此敏感数据的生成隔离了ShareIMS。

  用户将账号登记到了ShareIMS上以后就可以使用IM服务。用户将数据发送到ShareIMS时的数据处理方案为:

(1) 生成随机加密key

(2) 用对方公钥加密key

(3) 用key加密明文

(4) 将密文打包

(5) 使用自己的私钥对数据包进行签名。

  ShareIMS收到数据以后,由于没有私钥,无法解开数据内容,因此在ShareIMS上存储的数据是安全的。

  传统的私有化部署IM服务,当服务器发生故障时,会导致用户无法使用。使用共享IM服务,当部分节点发生故障时,可立即切换到其他无故障节点继续使用。
在这里插入图片描述

user1与user2通过多节点接入完成消息交互示意图

自建共享IM节点

开发者搭建共享IM节点参见项目

ospn-connector: https://github.com/openbpi/ospn-connector

ospn-ims-share: https://github.com/openbpi/ospn-ims-share

注:配置时,需要指定邻近的共享IM节点IP。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值