Javascript WebSocket是否发送和接收完整消息?

Javascript WebSocket是否发送和接收完整消息?,javascript,python,django,websocket,django-channels,Javascript,Python,Django,Websocket,Django Channels,我是web开发新手,我正在尝试使用python编写一个简单的web游戏,并为我的服务器编写一些javascript作为前端图形。我正在使用这个包来使用WebSocket进行通信,我有一个关于WebSocket的小问题 在python中,我知道当我们使用套接字时,消息不能保证完全发送。例如,如果我在python中使用socket.send,我可能不会发送整个消息,在这种情况下,我需要重新发送剩下的消息,而在接收方,我不能保证使用socket.recv(假设bufsize参数对于完整消息足够大),所

我是web开发新手,我正在尝试使用python编写一个简单的web游戏,并为我的服务器编写一些javascript作为前端图形。我正在使用这个包来使用WebSocket进行通信,我有一个关于WebSocket的小问题

在python中,我知道当我们使用套接字时,消息不能保证完全发送。例如,如果我在python中使用
socket.send
,我可能不会发送整个消息,在这种情况下,我需要重新发送剩下的消息,而在接收方,我不能保证使用
socket.recv
(假设
bufsize
参数对于完整消息足够大),所以我必须一直打电话给recv,直到收到全部信息

我的问题是:WebSocket是否也一样?

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

这是真的吗?我是否可以假设,我在客户端使用socket.send发送的消息将在服务器端的一个事件(在我的情况下是a)中完全接收,反之亦然:如果服务器向客户端发送消息,是否会在客户端的一个javascript
message
事件中完全接收


提前感谢。

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

Django通道的可靠性不高

在这些频道上调用receive不能保证您将按顺序收到消息,或者如果频道非空,您将收到任何消息。


但是如果连接稳定,我保证一次收到全部信息。例如,如果我执行了socket.send(“Hello There”),我是否可以确保整个消息已完全发送,并且将在另一端完全接收,或者我需要使用一些缓冲技术或类似的技术来确保正确发送和接收所有内容吗?Websocket是套接字之上的抽象级别,就像HTTP一样。在发送完整消息之前以及在接收方,他们应该已经负责发送数据块。就像您在使用常规HTTP客户端或服务器时不必担心这一点一样,您也不必担心这一点,因为底层websocket客户端应该这样做