2011-06-13 61 views
0

当我尝试连接到我的WebSocket服务器我得到这个错误:跨服务器的WebSockets

Error during WebSocket handshake: origin mismatch: http://skerit.com != http://kipdola.be 

果然,我不得不把在原点响应,就像这样:

self.client.send("Sec-WebSocket-Origin: http://kipdola.be\r\n") 
    self.client.send("Sec-WebSocket-Location: ws://kipdola.be:1234/\r\n") 

但我如何设置它以允许多个来源?

回答

1

你只回显原点在请求中提供的用户,请求看起来有点像这样:

GET/HTTP/1.1 
Upgrade: WebSocket 
Connection: Upgrade 
Host: skerit.com 
Origin: http://skerit.com 

如果Origin标题是你允许的来源列表您进行服务器端的检查,只是回声回到客户端的原点:

self.client.send("Sec-WebSocket-Origin: " + headers["Origin"] + "\r\n") 
+0

我想过这样做,python是否得到这些信息? – skerit 2011-06-13 11:46:00

+0

你在使用什么HTTP库? Websocket通信需要生成部分通过头文件传递的握手数据。标题列表应该在某处可用。 – 2011-06-13 11:49:11

+0

只是套接字库。一旦客户端接受,我只需要一个'server.accept()',它给了我一个对(conn,address)(Info在http://docs.python.org/library/socket.html?highlight=socket#socket .socket.accept) – skerit 2011-06-13 11:52:47