开放式社交公共网络(OSPN)之十一
企业现有系统接入OSPN服务器篇
一、建立映射
企业现有系统接入OSPN网络,用户的账户需要与OSN账户进行一个映射。映射方式可以是在用户数据库中增加一个字段用以存放OSN账户,也可以另外建立一张映射表。
二、搭建OSN-CONNECTOR服务(以下简称OSNC)
OSN-CONNECTOR下载地址
搭建方法请参照github里的说明。
需要注意的是启动OSNC时需要配置IMS的地址。
企业IM服务通过OSNC服务与OSPN网络进行数据交换。
三、企业原有的IM服务(以下简称IMS)需要与OSNC服务完成数据交换。
IM服务里需要配置OSNC的IP和端口。
同时企业IMS的逻辑需要进行小范围的修改。IMS逻辑上的兼容请参照下面的流程。
- 发送和接收跨界消息流程:
我们假设userA是IMS1的用户,userB是IMS2的用户,现在userA要发送一条消息给userB。
1.userA将消息封装并且签名以后发送给IMS1,IMS1通过OSPN网络通知userB来获取消息(OSNC1的作用是连接OSPN网络,因此IMS1会发送message消息给OSNC1)。
2.所有OSNC接到找人的通知以后,都会给与自己绑定的IMS发送一条finduser的命令。这个过程是单向过程,其他节点收到以后不会回复OSNC1。IMS判断userB是否是自己的用户,不是则不予以回复。
3.当IMS2接收到finduser命令时,IMS2会发送getmsglist命令给IMS1(通过OSPN网络)。
4.IMS1接收到getmsglist命令以后发送消息源列表给IMS2(通过OSPN网络)。
5.IMS2转发给userB。userB选择自己需要的消息,发送getmsg给IMS2。
6.IMS2发送getmsg命令给IMS1(通过OSPN网络)。
7.IMS1接收到getmsg消息以后,发送消息集合给IMS2(通过OSPN网络)。
8.IMS2转发给userB。
9.userB验证签名以后发送带签名的回执给IMS2,IMS2发送给IMS1(通过OSPN网络)。
10.IMS1验证签名以后删除掉缓存的消息。
根据以上流程,企业IMS的消息发送流程需要做如下修改
- 客户端发送消息时,会自动判断对方是否使用同一软件。如果使用同一软件,消息格式和流程维持不变。
- IMS接收到消息时,根据消息格式决定流程。跨界消息走跨界流程。消息缓存在IMS上建议保留一个月或者7天。
- 《OSN-CONNECTOR 接口文档》文档介绍了如何与OSNC进行通信。请参考例子osn-imsdemo
- 《开放式社交网络通信协议》文档介绍了如何处理各种消息。请参考例子osn-imsdemo
更多的细节请参见开放式社交公共网络IM服务设计方案。