类似QQ的弹出提醒,不需要聊天,只需要提醒



 打算做一个类似qq的消息弹出提醒,客户端安装软件后,服务端有消息就通知客户端,服务端打算用libevent来做。客户端与服务端通信用tcp还是udp为好?向这种单纯的消息通知大概怎么设计与实现?麻烦各位谈谈,给个参考链接也行。

linux编程 C++ libevent socket

娃次哟呢目 9 years, 11 months ago

好乱的提问。

通信推荐使用 UDP,如果你的能力够的话。因为国内网络比较差,而 TCP 对丢包什么的太敏感的,用户网络不稳定的话连接就会 stalled。UDP 自己做流控就可以做得更适合消息通知了。当然如果你的消息很短的话直接发一个带序列号和签名的 UDP 包过去就行,客户端收到了给个回应,服务器等一段时间还没收到回应就重发。

幻♂想♂乡 answered 9 years, 11 months ago

linux建议用epoll模型 这样就能避免c10k问题

建议用tcp模型先试试压力 写的时候注意点 抽取核心功能 到时候可以替换成udp再测试测试

建议搜索 ‘订阅/发布’ 模型 ‘消息队列’ 等架构信息 进行参考

井上丶远子 answered 9 years, 11 months ago

之前做过一个类似的项目,使用的是tcp长连接,也是用基于libevent开发的:
1、高并发,lz可以搜索c10k问题
2、断开重连,特别2G网络下的网络不稳定问题,还是就是2G网络有一部分使用的是移动的代理上网的,具体记不住了,lz google吧

まゆゆは俺D嫁 answered 9 years, 11 months ago

Your Answer