即时通讯原理
来源:互联网 发布:用波士顿矩阵分析华为 编辑:程序博客网 时间:2024/04/28 12:20
(公网中的P2P聊天,服务器是具有固定IP的)
基本思路是:
A登录S后,A取所有的好友列表,取到好友B时:
1、S告诉B,好友A上线啦(S将A的公网IP也告诉B),这时B发一个给A的打洞包。
2、A取回好友B后,就向好友B发一个数据[打洞]。
即:A-->S:
S to B,B to A
S to A,A to B
注意:
NAT的SESSION问题(超时),应该定时发一定的数据维护NAT上的SESSION,以使这种"连接"长期有效。
解释:
所谓的打洞就是发一个数据(内容不限,可为1字节也行)给对方,先不考虑能否收到,而是建立一条直接连接通道
条件:当A和B都通过S取得对方的公网IP之后,如A(211.85.11.42:3001),B(202.115.144.33:4001)
打洞过程:
1、A登录到S,S通知B,B发打洞数据给A,形如B.Socket.SendDate(A.IP,A.PORT,任意一小段数据)
这时A的网关会丢弃掉来自B的数据,因为B是不请自来的,但重要的是,在B的网关上已经加了一条B到A的NAT SESSION。
B网关NAT的理解为:是你B主动往A上发送数据的哈,以后如果A要是发数据来,我就传给你啦!
2、A取回好友B的信息回来后,发一条打洞数据给B,(之前B已经发了打洞数据给A,且时间不宜过长),这时B会收到来自A的数据了。因为(见1),并且在A的网关上产生了一条A到B的NAT SESSION,以后大家可以互通啦
- 即时通讯原理
- IM即时通讯实现原理
- IM即时通讯实现原理
- IM即时通讯实现原理
- IM即时通讯实现原理
- IM即时通讯实现原理
- IM即时通讯实现原理
- IM即时通讯实现原理
- IM即时通讯实现原理
- IM即时通讯实现原理
- IM即时通讯实现原理
- IM即时通讯实现原理
- 即时通讯原理-Instant Messenger
- Android即时通讯实现原理
- IM即时通讯实现原理
- im即时通讯实现原理
- IM即时通讯实现原理
- IM即时通讯实现原理
- 集成 IBM Rational RequisitePro 与 IBM Rational Portfolio Manager
- 高通:赢在业务模式
- SSH 框架分页代码
- 简单获取键盘的KeyCode
- Mashup -- SOA 的发展之路,第 2 部分: 环境应用程序和 Mashup 生态系统
- 即时通讯原理
- 物体爆炸效果的实现
- 一些常用的find命令
- 关于链表排序的新思路
- Java虚拟机类装载
- vb中用ado对象Recordset来绑定到DataGrid的常见问题分析
- 在Linux下安装JDK及环境设置的两种方法
- Javascript currying的三种实现
- 无题