【发布时间】:2020-09-29 21:55:01
【问题描述】:
当通过互联网传递 websocket 并且仅在连接关闭时发送(在我的网络上就是这样),我首先尝试通过关闭 chrome 来关闭 websocket(它有效),所以现在我发现终止我think 可以做到与关闭浏览器相同,但仅适用于具有此功能的服务器,并且
问题是关闭的缓冲区不是0而是13...
那么我怎样才能使用hard close 和ws.terminate 或其他方法来将缓冲区刷新为0 以及类似下面的基本代码而不会出现错误? em>
ws = new WebSocket("ws://adress:5677/"),
messages = document.createElement('ul');
ws.onopen = function (event) {
alert("connect");
var lol = document.getElementById('lolz').value;
alert(lol);
ws.send(lol+" <p>\b\n\r");
ws.close();
console.log(ws.readyState);
if(ws.readyState ==2){
alert("ws.terminate");
return ws.terminate();
}
}
如果您查看图片和代码,您可以看到我使用ws.close,但它似乎没有做任何事情,缓冲区不是零并且它仍然连接这是一张关于状态的图片Websocket 在 ws.close() 之后,我认为 ws.close() 等待服务器也关闭连接,并且当服务器在关闭服务器之前等待接收某些内容时,这是一个错误。
我的 pthon 服务器,如果没有的话
async def Time(websocket, path):
try:
a=await websocket.recv()
print("final receive:"+str(a)+"/")
a=str(a).split("<p>")
a=a[0]
print("/"+str(a)+"/")
except:
print("erreur")
finally:
socketout(bytes(a.encode("utf-8")))
print("loop stop")
loop.stop()
print("loop ad stop")
start_server = websockets.serve(Time, "", 5678)
loop3=asyncio.get_event_loop()
loop3.run_until_complete(start_server)
视觉解释 感谢您的帮助 [![视觉][2]][2]
【问题讨论】:
标签: javascript networking websocket tcp network-programming