WebSocket到Python“不正确的'Sec WebSocket Accept'标题值”
我在使用python让WebSocket接受响应时遇到了一些问题 我正在使用以下代码:WebSocket到Python“不正确的'Sec WebSocket Accept'标题值”,python,websocket,handshake,Python,Websocket,Handshake,我在使用python让WebSocket接受响应时遇到了一些问题 我正在使用以下代码: $(document).ready(function() { var ws = new WebSocket("ws://127.0.0.1:50705"); }); 要调用调用此函数的python套接字,请执行以下操作: def resolveKey(self, key): key = bytes(key, "utf-8") + bytes("258EAFA5-E914-47DA-95CA-
$(document).ready(function() {
var ws = new WebSocket("ws://127.0.0.1:50705");
});
要调用调用此函数的python套接字,请执行以下操作:
def resolveKey(self, key):
key = bytes(key, "utf-8") + bytes("258EAFA5-E914-47DA-95CA-C5AB0DC85B11", "utf-8")
key = hashlib.sha1(key).hexdigest()
key = base64.b64encode(bytes(key, "utf-8"))
return key
以下是标题:
请求
Accept-Encoding:gzip, deflate, sdch
Accept-Language:en-US,en;q=0.8
Cache-Control:no-cache
Connection:Upgrade
Host:127.0.0.1:50705
Origin:null
Pragma:no-cache
Sec-WebSocket-Extensions:permessage-deflate; client_max_window_bits
Sec-WebSocket-Key:iqQ1q0W6FoAJXvrCAbCqHQ==
Sec-WebSocket-Version:13
Upgrade:websocket
User-Agent:Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2272.89 Safari/537.36
回应
Connection:Upgrade
Sec-WebSocket-Accept:NThmZDY4Y2YxZjc1Y2VkYTA3YWJmNmRmYTc3OWMyZDMyZGY2MmZjZQ==
Upgrade:WebSocket
我已经获取了值,手动应用了魔术键,对其进行了sha1'd处理,然后对其进行base64编码,该值看起来是正确的。我遗漏了什么吗?顺便说一句,这整个过程有必要吗?这似乎无缘无故地增加了复杂性。我的PHP服务器代码有完全相同的问题:WebSocket握手时出现相同的错误:“Sec WebSocket Accept”头值错误,而我正在执行完全相同的操作以获取Sec WebSocket Accept值。发布我自己的问题…@FancyJohn我最终解决了这个问题。你能找到的每一篇文章都会告诉你去读,去做。你不必通读,只要浏览一下,直到找到你需要的东西,但每一步都很详细。此外,PHP可能不是web套接字服务器的正确选择。如果您有一些灵活性,请使用node.jsI,我认为这是必要的,以防止攻击。