谈我在做IM时候遇到的几个问题
我做IM时候,遇到以下几个问题,希望有朋友可以和我讨论一下:
开发环境:
后台:linux+cpp+mysql
前台:vc
1、点对点通讯的时候,如果完全用udp进行点对点,会存在nat穿透问题,
有时候可以成功,有时候不能成功,那么就需要用服务器转发,
这样就需要client和server时刻保持连接,这样耗费资源将非常大,
(linux内核会为每个连接保持20m的资源空间)
2、群消息
我采用组播机制,但是发现组播无法穿透网关,难道要我对每个用户逐一发吗?
另外,因为我的服务器属于被动响应,client可能处于私网内,server无法主动connect
client。
3、广播消息
我采用广播,那么路由器会阻止广播,难道我也要一个个发吗?
4、以上问题,不知道qq都是怎么实现的呢?
听说qq的群离线消息只发最近多少条,不知道是否有这回事。
希望有时间关心这个问题的朋友可以指导一下,谢谢。