gpt4 book ai didi

javascript - Websocket 是否发送和接收完整消息?

转载 作者:太空宇宙 更新时间:2023-11-03 20:40:02 24 4
gpt4 key购买 nike

我是网络开发新手,我正在尝试使用 python 和 django 编写一个简单的网络游戏。对于我的服务器,带有一些用于前端图形的 javascript。我正在使用channels包使用 websockets 进行通信,我有一个关于 websockets 的小问题。

在Python中,我知道当我们使用套接字时,不能保证消息被完全发送。例如,如果我在 python 中使用 socket.send ,我可能不会发送整个消息,在这种情况下我需要重新发送剩下的内容,并且在接收端,我不能保证得到使用socket.recv获取完整消息(假设bufsize参数对于完整消息来说足够大),所以我必须继续调用recv直到我收到了完整的消息。

我的问题是:这与 websockets 是否相同?

我尝试在MDN中寻找这个文档和谷歌,但我找不到任何相关信息。此外,我在网上看到的每个例子都没有考虑到这一点,所以看起来我用 socket.send (在 JavaScript 中)发送的内容正是我在另一端得到的,反之亦然反之亦然。

这是真的吗?我是否可以假设我在客户端使用 socket.send 发送的消息将在服务器端的一个事件中被完全接收(在我的例子中是 websocket consumer ),反之亦然:如果服务器向客户端发送一条消息,客户端是否会在 JavaScript 中的一个 Message 事件中完全接收该消息?

提前致谢。

最佳答案

您可以假设如果客户端已连接,就会收到该消息。反之亦然,服务器将接收它正在监听的消息。

Django Channel 确实不可靠。

在这些 channel 上调用 receive 并不能保证您将按顺序收到消息,或者如果 channel 非空,您将获得任何内容。

https://channels.readthedocs.io/en/latest/channel_layer_spec.html#channel-semantics

关于javascript - Websocket 是否发送和接收完整消息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56914609/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com