socket.io客户端与tornado python s之间的Websocket连接

2024-05-13 10:35:35 发布

您现在位置:Python中文网/ 问答频道 /正文

我想让websockets在两台机器之间工作。一台电脑和一个覆盆子皮。 在PC上,我使用socket.io作为客户端连接到raspberry pi上的服务器。 使用以下代码,我完成了连接并尝试发送预定义的数据。

var socket = io.connect(ip + ':8080');
socket.send('volumes', { data: data });

在raspberry pi上,websocket服务器如下所示:

from tornado import web, ioloop
from sockjs.tornado import SockJSRouter, SockJSConnection

class EchoConnection(SockJSConnection):

    def on_message(self, msg):
        self.send(msg)


    def check_origin(self, origin):
        return True

if __name__ == '__main__':
    EchoRouter = SockJSRouter(EchoConnection, '/echo')

    app = web.Application(EchoRouter.urls)
    app.listen(8080)
    ioloop.IOLoop.instance().start()

但这种联系从未建立起来。我不知道为什么。在服务器日志中,我得到:

WARNING:tornado.access:404 GET /socket.io/1/?t=1412865634790 (192.168.0.16) 9.01ms

在pc上的检查器中有一条错误消息:

XMLHttpRequest cannot load http://192.168.0.10:8080/socket.io/1/?t=1412865634790. Origin sp://793b6d4588ead99e1780e35b71d24d1b285328f8.hue is not allowed by Access-Control-Allow-Origin. 

我没主意了,不知道该怎么办。你能帮助我吗? 谢谢您!


Tags: fromioimportself服务器sendwebdata