我正在使用twisted来实现客户端和服务器。我在客户端和服务器之间建立了RPC。所以在客户端我做protocol.REQUEST_UPDATE_STATS(stats)
,这意味着在["update_stats", stats]
的某些编码版本的客户端传输上发送消息transport.write
。当服务器收到此消息时,将调用服务器协议上的dataReceived
函数,对其进行解码并根据消息调用函数,如CMD_UPDATE_STATS(stats)
。扭曲的RPC是否保证按顺序到达?
如果在客户端上,我做这样的事情:
protocol.REQUEST_UPDATE_STATS("stats1")
protocol.REQUEST_UPDATE_STATS("stats2")
...我在保证了"stats1"
消息服务器上的"stats2"
消息之前到达?
更新:编辑更清晰。但现在答案似乎很明显 - 没办法。
什么是“RPC”?你的意思是网络信息?你使用的是TCP套接字还是UDP?是不同的消息通过*相同的*套接字,或不同的?你的协议是否允许异步响应?有没有可能重新排序请求的中间件?如果你想要一个正确的答案,而不仅仅是一个猜测,你可能不适用于你的情况,你必须更具体。 – Glyph 2010-08-19 17:37:12