小白咨询workerman问题

0

我使用workerman做了一个聊天室。


1.
我之前使用ajax轮询做的聊天室,在访问量大的情况下会挂掉。
我想知道workerman对于长轮询、短轮询来说,是否能有效减轻服务器压力?


2.
有一篇文章,我想直接推送所有内容(标题、时间、内容等),这样就不用去存储介质中读取数据了,节省了一次HTTP请求。可是这样会不会造成丢包现象或某个用户收不到的情况??
还是说仅仅推送一个文章id,用户收到文章id后去数据库读取显示比较稳妥些?

已邀请:

walkor

赞同来自:

1、如果用workerman的话,建议直接长链接,就不用轮询了,单台服务器可支持10万在线(实际项目),性能是轮询无法比的


2、只要socket链接连着,并且网络没问题就可以收到推送。即使失败,也可以在刷新页面时判断下数据库是否有未读的消息。任何一个产品都无法保证消息都能100%到达,因为每个客户的客户端和网络环境都不一样。
建议只推送文章id,内容可能会很大,如果瞬间推送很多用户会占用很大的带宽,比如1W在线,文章10k,那瞬间就是1W_10k_8bit = 800M的带宽。

walkor

赞同来自:


1.请问使用长连接是workerman默认的吗?还是得设置一下?



没有这种设置,服务端和客户端都不关闭连接,那就是长链接。
建议你直接用workerman-chat改改就可以了



2.我看文档里有这么个功能:如果用户收到消息后,返回一个状态,说明已经收到,如果没返回状态说明没收到,则重新发送。请问这个功能workerman自动开启了吗?
请问是否有这方面的实例?



哪个文档有说这个东西?给个链接

walkor

赞同来自:

直接在回复里面写,评论里面框太小了,并且不好编辑

frontlon - 80后IT男

赞同来自:


哪个文档有说这个东西?给个链接
额好吧,我是看其他网友发的帖子....



谢谢大哥了,基本都明白了!

要回复问题请先登录注册