icomet
icomet copied to clipboard
当sub状态断开的时候,pub消息无法被缓存
- 首先sub消息 curl -v "http://127.0.0.1:8100/sub?cname=12"
- 再pub消息 curl -v "http://127.0.0.1:8000/pub?cname=12&content=hi" 这样使用正常。
但是如果顺序反过来的话,则sub无法获取到刚刚取得的消息。
能否给icomet增加一个缓存消息的数据库,redis或者其他的,要允许消息在一定时间内失效,并且被获取。
你好, 已经增加该功能. 在 comet.conf 配置文件里增加了 channel_timeout 选项, 请将该值改为较大的数(例如1亿), 表示通道的存活时间.
目前, 消息还是不能持久化, 也没有失效时间.
能否将ssdb工程和icomet工程结合起来做,这样既有消息持久化,又可以防止短时间内消息丢失呢。
有缓存及过期时间控制,如在过期时间内重复请求会获取重复数据,能否设计为队列形式,获取后从队列内删除。
@foxconndmd 为了避免重复数据, 需要利用 seq 参数, 重连时, seq = last_seq + 1.