批量发消息到客户端,用socket好还是每分钟读一次sql服务器上的信息好?

2024-12-16 12:51:08
推荐回答(2个)
回答1:

这个问题挺有意思的。以前没做过,说说设想,仅供参考。
1、让服务器保留每个客户端的连接,在有新事件时直接Socket发送到客户端。
这个策略应该是时间性最好的,但毫无疑问,它的资源占用很大,受网络条件限制,并不实用。
2、产生新事件时存库,客户端每分钟来取一次。
这个可行性是没问题的,但是无法保证事件消息能够及时传递,要等一分钟呢。
3、客户端每几秒钟上送一个极短报文,只查询是否有新消息。
这应该是一个折中方案。比如说客户端每两秒上送一个6字节的短报文,如果有新事件,就回个1,否则回0。当收到1时重新发送一个完整的取新事件报文。这样是不是比较好呢?每分钟不过0.2K的数据量而已。

回答2:

最好的办法是客户端安装一个服务来做监听,或者程序内建一个监听,专门对服务器端发送请求来做处理,还是会用到Socket,这是一般的做法,比你去轮询强多了。
使用的Socket也是已经封装好的类库,不会很麻烦。