我正在使用Google GCM开发带有推送通知的多人游戏Android游戏。我的Web服务器具有REST API。发送到此API的大多数请求将请求发送到Google GCM服务器,以将通知发送给对手。
这是平均而言,对我的API的调用是〜140毫秒长,〜100 ms是由于发送到Google Server的HTTP请求。
我该怎么做才能加快这一点?我在想(我对服务器完全控制了我的服务器,堆栈是瓶/gunicorn/nginx)使用数据库创建一个独立过程,该数据库将尝试发送GCM请求的队列,但是也许有一种更简单的方法可以做到这一点。直接在瓶子或纯python中。
问题是您的客户正在等待您的服务器发送GCM推送通知。这种行为没有逻辑。
您需要更改服务器端代码以处理您的API请求,关闭与客户端的连接,然后发送推送通知。
如果您不这样做,您能做的最好的事情就是使所有网络异步。
问题是,总会有一个用户具有缓慢的Internet连接,并且没有一种通用方法可以使他们快速互联网:/。除此之外,想法是
- 仅发送几个小数据包或一个巨大的支持许多小数据包(更快的速度)
- 在TCP上使用UDP,UDP无连接,自然更快
我已经解决了我的问题:
我正在使用芹菜通过任务队列发送我的通知。我不敢相信它有多简单!
谢谢:)