纸上谈兵:如何做到IM的互通

本文探讨了不同互联网公司的即时通讯(IM)产品之间的互联互通问题。提出了通过单向好友关系和服务器间信任机制来解决跨平台通讯的技术方案,并讨论了实现这一目标的理想路径。

    目前每个大的互联网企业都有自己的IM产品,但是这些产品都是各自为政,相互间不能通讯。那能否做到IM之间相互通讯呢?我先从技术实现上分析吧:

    我们先假设如下场景:IM A属于互联网公司a.com,IM B属于互联网公司b.com。我们来看看user@a.com和user@b.com通讯会遇到哪些问题。

    首先在好友关系上,通常的IM做法是需要聊天的两个用户建立双向的好友关系。但是如果两个用户的帐号是属于两个公司的话,这个就不好办了,因为每个公司都有清理沉默帐号的规则,比如A公司清理了一些帐号,肯定不愿意告诉B公司清理了哪些帐号。解决这个问题的方法就是使用非对称的好友关系,也就是单向的好友关系。类似邮箱里面的通讯录,只要只用对方的用户名就可以给对方发消息。

   其次是服务器之间信任问题。比如a.com的服务器向b.com的服务器发送了一条IM消息,那如何判断这条消息不是假冒的呢?这个也很简单,我只要知道a.com的所有服务器的ip就可以了,检查发送方的ip就可以知道是否是别的服务器冒充的了。那如何知道a.com的所有服务器的ip呢,这个也很简单,只要在对应的域名上加一条text记录。text记录里面包含服务器列表就可以了。

   对于如何传递消息,如何发送状态通知等等,这些都不是技术难点,只要能协商出一个技术方案就ok。

   这个在技术实现上没什么特别的难度,那为什么说是纸上谈兵呢?主要是这个没人推动。在一个理想的情况下,比如几大互联网公司都有IM互通的意愿,大家都出资成立一个合资公司。这个合资公司的职责就是定制一套通讯规范,并实现一个简单的IM框架(client和server)并开源。这个框架只需要能支持几百个用户就ok了,不需要太复杂和功能强大。利用这个IM框架的话,个人或小公司都能做出自己的IM就可以了。

   在目前IM市场qq一家独大的情况下,其他互联网公司做这样的事情应该还是有好处的。IM在技术上并不是很复杂的东西,需要投入的资源不是非常之大。

  本来有设计一套通讯协议的,但是觉得没什么意义,所以就没加到文章里来了。

源码地址: https://pan.quark.cn/s/d1f41682e390 miyoubiAuto 米游社每日米游币自动化Python脚本(务必使用Python3) 8更新:更换cookie的获取地址 注意:禁止在B站、贴吧、或各大论坛大肆传播! 作者已退游,项目不维护了。 如果有能力的可以pr修复。 小引一波 推荐关注几个非常可爱有趣的女孩! 欢迎B站搜索: @嘉然今天吃什么 @向晚大魔王 @乃琳Queen @贝拉kira 第三方库 食用方法 下载源码 在Global.py中设置米游社Cookie 运行myb.py 本地第一次运行时会自动生产一个文件储存cookie,请勿删除 当前仅支持单个账号! 获取Cookie方法 浏览器无痕模式打开 http://user.mihoyo.com/ ,登录账号 按,打开,找到并点击 按刷新页面,按下图复制 Cookie: How to get mys cookie 当触发时,可尝试按关闭,然后再次刷新页面,最后复制 Cookie。 也可以使用另一种方法: 复制代码 浏览器无痕模式打开 http://user.mihoyo.com/ ,登录账号 按,打开,找到并点击 控制台粘贴代码并运行,获得类似的输出信息 部分即为所需复制的 Cookie,点击确定复制 部署方法--腾讯云函数版(推荐! ) 下载项目源码和压缩包 进入项目文件夹打开命令行执行以下命令 xxxxxxx为通过上面方式或取得米游社cookie 一定要用双引号包裹!! 例如: png 复制返回内容(包括括号) 例如: QQ截图20210505031552.png 登录腾讯云函数官网 选择函数服务-新建-自定义创建 函数名称随意-地区随意-运行环境Python3....
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值