谈我在做IM时候遇到的几个问题

jobsccnu 上海乐问信息技术有限公司 CTO  2006-04-24 10:28:20
我做IM时候,遇到以下几个问题,希望有朋友可以和我讨论一下:
开发环境:
后台:linux+cpp+mysql
前台:vc
1、点对点通讯的时候,如果完全用udp进行点对点,会存在nat穿透问题,
有时候可以成功,有时候不能成功,那么就需要用服务器转发,
这样就需要client和server时刻保持连接,这样耗费资源将非常大,
(linux内核会为每个连接保持20m的资源空间)
2、群消息
我采用组播机制,但是发现组播无法穿透网关,难道要我对每个用户逐一发吗?
另外,因为我的服务器属于被动响应,client可能处于私网内,server无法主动connect
client。
3、广播消息
我采用广播,那么路由器会阻止广播,难道我也要一个个发吗?
4、以上问题,不知道qq都是怎么实现的呢?
听说qq的群离线消息只发最近多少条,不知道是否有这回事。
希望有时间关心这个问题的朋友可以指导一下,谢谢。
...全文
357 3 点赞 打赏 收藏 举报
写回复
3 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
MrPotter 2006-04-28
群聊就是服务器中转的
  • 打赏
  • 举报
回复
daironghua 2006-04-27
我也正在做IM,与LZ有相同问题:
1、UDP P2P 实现了,但得考虑不成功时Server转发;
2、多方会话 采用组播,在局域网内可以,但不能跨越路由,即无法跨域组播;
3、为什么要广播?如果组播能跨域,广播不需要的;
4、我也想知道QQ 的群聊是什么机制实现的??

是组播吗? 我查了资料,全球组播地址需要申请的,QQ 用组播实现多放会话也不像

期待高手解释一下
  • 打赏
  • 举报
回复
netsys2 2006-04-24
1、用服务器转发
----->不一定实时,可以减少维护量

2、群消息、广播消息
-----》应该服务器控制来发
  • 打赏
  • 举报
回复
相关推荐
发帖
通信技术
加入

4141

社区成员

通信技术相关讨论
申请成为版主
帖子事件
创建了帖子
2006-04-24 10:28
社区公告
暂无公告