Как разрешить ws: // вместо localhost: // для торнадо - PullRequest
0 голосов
/ 30 сентября 2018

У меня есть следующее базовое приложение торнадо:

import tornado.web

class IndexHandler(tornado.web.RequestHandler):
    """Regular HTTP handler to serve the ping page"""
    def get(self):
        self.write("OK")

if __name__ == "__main__":

    app = tornado.web.Application([
    (r"/", IndexHandler), 
    ])
    app.listen(8000)
    print 'Listening on 0.0.0.0:8000'
    tornado.ioloop.IOLoop.instance().start()

Это будет работать на "http://localhost:8000".Как мне заставить это работать и принимать соединения на ws://localhost:8000?

1 Ответ

0 голосов
/ 01 октября 2018

tornado.web.RequestHandler используется для приема HTTP-запросов.Для веб-сокетов вам нужно использовать tornado.websocket.WebSocketHandler.


Еще одна вещь, на которую следует обратить внимание, это то, что вы не можете посещать URL веб-сокета непосредственно из браузера.То есть вы не можете набрать ws://localhost:8000 в адресной строке и ожидать подключения к веб-сокету.Это не так, как работают веб-сокеты.

Соединение веб-сокетов является подключением для обновления.Это означает, что сначала вы должны посетить URL-адрес через HTTP, а затем использовать Javascript для обновления до веб-сокета.

См. Пример о том, как подключиться к веб-сокету с помощью Javascript, по адресу Mozilla Web Docs .

...