【发布时间】:2015-08-08 11:41:17
【问题描述】:
如果人们想要我,我可以在这里发布我的代码,但这可能是一个简单的快速回答,所以我还没有这样做。
我有一个 c# 桌面应用程序。
它使用网络套接字向我的服务器发送信息。
该信息包含该信息创建时间的时间戳。它按时间戳顺序发送到我的服务器。
在我的服务器上,我将当前时间戳与之前的时间戳进行比较。有大量的信息是零星接收的。
我原以为 TCP 应该保留订单。我错了吗?有没有办法确保以正确的顺序交付,还是我必须在我的服务器上编写代码才能重新排序?
我每秒发送 20 次信息。
谢谢
【问题讨论】:
-
这可能是一个并发问题 - 虽然消息可能以正确的顺序(TCP 级别)进入,但 websocket 队列中的事件可能以不同于客户端预期的顺序执行或服务器...例如,尽管在您的应用程序中安排了
send,但它可能在稍后的send之后异步执行。此外,服务器可能会排队许多on_message事件,并且它们可能以与接收/预期不同的顺序异步执行。我们需要更多代码才能知道... -
这是个好主意。我正在使用 flek 网络套接字。我回来时会发布该代码。谢谢