Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Tornado WebSocket的连接错误+;Django+;Azure+;阿帕奇_Python_Django_Sockets_Azure - Fatal编程技术网

Python Tornado WebSocket的连接错误+;Django+;Azure+;阿帕奇

Python Tornado WebSocket的连接错误+;Django+;Azure+;阿帕奇,python,django,sockets,azure,Python,Django,Sockets,Azure,我正在一台带有ubuntu 14.04 lts的虚拟机上运行我的应用程序。我正在通过Apache上的WSGI运行我的Django应用程序 以前,我使用命令“python manage.py runserver”在本地运行django,当我的网站从website.html连接到sockets.py文件时,一切都很好 我在公共ip端口80上通过Apache运行Django 我正在通过油灰在端子中分别运行sockets.py 我正在通过谷歌浏览器控制台读取错误 突然出现此错误:未能在“WebSocke

我正在一台带有ubuntu 14.04 lts的虚拟机上运行我的应用程序。我正在通过Apache上的WSGI运行我的Django应用程序

以前,我使用命令“python manage.py runserver”在本地运行django,当我的网站从website.html连接到sockets.py文件时,一切都很好

  • 我在公共ip端口80上通过Apache运行Django
  • 我正在通过油灰在端子中分别运行sockets.py
  • 我正在通过谷歌浏览器控制台读取错误
  • 突然出现此错误:未能在“WebSocket”上执行“send”:仍处于连接状态。每当我尝试连接到套接字时

    过了一会儿,我的页面响应为:失败:连接建立错误:net::ERR\u connection\u TIMED\u OUT

    website.html js:

    ws = new WebSocket("ws://10.77.22.74:1339/ws");
    
    function load_all() {
        target = "load_all"
        ws.send(target)
    }
    
    ws.onmessage = function(evt) { 
    console.log(evt.data)
    }
    
    ip是虚拟机上的内部ip

    sockets.py

    import tornado.httpserver
    import tornado.websocket
    import tornado.ioloop
    import tornado.web
    
    class WSHandler(tornado.websocket.WebSocketHandler):
    
        def check_origin(self, origin):
            return True
    
        def open(self):
            print 'new connection'
    
        def on_message(self, message):
    
             self.write_message(message)
    
    
        def on_close(self):
          print 'connection closed'
    
    
    application = tornado.web.Application([
        (r'/ws', WSHandler),
    ])
    
    
    if __name__ == "__main__":
        http_server = tornado.httpserver.HTTPServer(application)
        http_server.listen(1339)
        tornado.ioloop.IOLoop.instance().start()
    
  • 我已尝试将
    http\u服务器.listen(1339)
    更改为
    http\u服务器.listen(1339,address='10.77.22.74')
    (sockets.py)
  • 我尝试过使用我的公共ip,通过tcp(端点)打开一个端口,然后调整脚本(sockets.py和website.html)
  • 我尝试过使用localhost&127.0.0.1(sockets.py&website.html)运行
  • 我尝试过ws&wss
  • 由于某种原因,我仍然会出现错误,我是否需要给Apache(www-data)一些权限来连接sockets.py

    我应该在socket.py和website.htm上使用哪个IP

    解决了的 如果您没有在套接字服务器中指定地址,那么Tornado正在侦听所有IP:s。我在公共IP上打开了一个端口,并将该IP用于javascript套接字连接