纸上谈兵:如何做到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在技术上并不是很复杂的东西,需要投入的资源不是非常之大。

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值