业务场景是:
访问第三方服务,得建立一个长连接,而要保持长连接,需要定时给对方发送心跳包,这个连接也同时承担跟第三方服务器通讯的任务。当然,那个服务器的设计是异步的,这边发送的包,那边都会给个反馈结果的包。
因为对方服务器是异步操作,所以,我目前的实现方案是:
开辟两个timer,一个专门用来定时发送心跳包,另外一个用来定时收服务器的反馈结果。
然后在location里面,开辟一个接口,让用户可以通过URL来调用发数据包的操作。
另外,它有个限制,因为是并发的发送,它通过滑动窗口来进行控制,限制数 16。也就是说,在你最多只能发送16个数据包给服务器,如果服务器给你反馈结果了,你就可以空出窗口继续填充了,协议文档的说明:
消息采用并发方式发送,加以滑动窗口流量控制,窗口大小参数 W 可配置,现阶段建议为 16,即接收方在应答前一次收到的消息最多不超过 16 条。
才开始用nginx来开发,不是很熟,又是一个人瞎折腾,很多东西不知道咋搞。如果大家有其它方案,请帮下忙。谢谢
具体要实现的是中国移动的短信网关接口,协议
可以参考下。