Python 如何使用Tornado将消息发送到web套接字

Python 如何使用Tornado将消息发送到web套接字,python,django,websocket,tornado,Python,Django,Websocket,Tornado,您好,我正在使用Tornado,Djangoframmwork处理后端的套接字消息。我对我的项目不太熟悉,但在我的项目中有一个文件,其中有实现websocket.WebSocketHandler和web.Application的类。这是该文件的一部分 class Application(web.Application): """ Main Class for this application holding everything together. """ def

您好,我正在使用
Tornado
Django
frammwork处理后端的套接字消息。我对我的项目不太熟悉,但在我的项目中有一个文件,其中有实现
websocket.WebSocketHandler
web.Application
的类。这是该文件的一部分

class Application(web.Application):
    """
    Main Class for this application holding everything together.
    """
    def __init__(self):
        PROJECT_NAME = os.path.basename(os.getcwd())
        os.environ['DJANGO_SETTINGS_MODULE'] = PROJECT_NAME + 'tutorial/settings'

        # Handlers defining the url routing.
        handlers = [
            ('/room', SocketHandler),
            ('/room/([a-zA-Z0-9|=%]*)$', SocketHandler),
            ('/video_call', VideoCallSocketHandler),
            ('/video_call/([a-zA-Z0-9|=%]*)$', VideoCallSocketHandler),
        ]
前端部分中有一个函数:

var ws = new WebSocket('wss://domain.com:9003/video_call/' + conferenceId);

ws.onmessage = function (ev) {
    window.location.replace(redirectUrl);
};
我相信这个功能可以从我们的移动应用程序中获取用户的信息

所以问题是,我想把消息发送到这个url或任何它是
”的地方wss://domain.com:9003/video_call/“+conferenceId
从我的python视图中

例如:

def some_view_function(request, **kwargs):
    conference_id = request.GET.data['conferenceId']
    ...
    if something:
       send message to wss://domain.com:9003/video_call/' + conference_id

我该怎么做?

tornado的wrap django代码呢

def main():
    os.environ['DJANGO_SETTINGS_MODULE'] = 'docs.settings'
    application = get_wsgi_application()
    container = tornado.wsgi.WSGIContainer(application)

    tornado_app = tornado.web.Application(
       [('.*', tornado.web.FallbackHandler, dict(fallback=container))],        
    )

    server = tornado.httpserver.HTTPServer(tornado_app)
    server.bind(8888)
    server.start(0)
    tornado.ioloop.IOLoop.instance().start()
django和tornado之间的通信我建议通过队列进行通信,就像Redis一样

def some_view_function(request, **kwargs):
    conference_id = request.GET.data['conferenceId']
    ...
    if something:
       send_to_queue()

在tornado端队列侦听器上。

tornado的wrap django代码怎么样

def main():
    os.environ['DJANGO_SETTINGS_MODULE'] = 'docs.settings'
    application = get_wsgi_application()
    container = tornado.wsgi.WSGIContainer(application)

    tornado_app = tornado.web.Application(
       [('.*', tornado.web.FallbackHandler, dict(fallback=container))],        
    )

    server = tornado.httpserver.HTTPServer(tornado_app)
    server.bind(8888)
    server.start(0)
    tornado.ioloop.IOLoop.instance().start()
django和tornado之间的通信我建议通过队列进行通信,就像Redis一样

def some_view_function(request, **kwargs):
    conference_id = request.GET.data['conferenceId']
    ...
    if something:
       send_to_queue()

在tornado端队列侦听器上。

发送到队列中定义
会议id
如何。函数将如何知道向哪个
WebSocket
发送消息?如何在
send\u to\u queue
中定义
conference\u id
。函数将如何知道向哪个
WebSocket
发送消息?