美文网首页
WebSocket的应用(二十二)

WebSocket的应用(二十二)

作者: 梦捷者 | 来源:发表于2020-04-16 08:47 被阅读0次

    参考文档:https://tornado-zh.readthedocs.io/zh/latest/websocket.html

    一、一个简单的 WebSocket handler 的实例: 服务端直接返回所有收到的消息给客户端

    1、chat.py文件的编写内容

    import tornado.websocket
    
    class EchoWebSocket(tornado.websocket.WebSocketHandler):
        def open(self):
            print("WebSocket opened")
    
        def on_message(self, message):
            self.write_message(u"You said: " + message)
    
        def on_close(self):
            print("WebSocket closed")
    

    2、配置路由信息

    handlers=[(r'/ws', chat.EchoWebSocket)]
    

    3、在浏览器中输入以下内容

    (1)首先在浏览器的控制台输入以下代码,建立初始化连接

    w = new WebSocket('ws://127.0.0.1:8080/ws')#输入,必须是ws协议
    WebSocket {url: "ws://127.0.0.1:8080/ws", readyState: 0, bufferedAmount: 0, onopen: null, onerror: null, …}#输出
    

    注意:此时会在pycharm中输出open方法中的内容。

    (2)客户端向服务端发送相应的消息,在浏览器的控制台上进行相应的操作

    w.send('你好!!')
    

    输出内容(向上箭头表示客户端向服务端发送相应的消息,向下则反)

    (3)关闭WebSocket通信

    1、直接关闭访问的界面。
    2、w.close()
    

    二、WebSocket 关键方法

    1、tornado的WebSocketHandler(继承并重写了父类方法)

    • open 客户端连接成功时,自动调用
    • on_message 客户端连发送消息时,自动调用
    • on_close 客户端关闭连接时,自动调用

    重写 on_message 来处理收到的消息, 使用 write_message 来发送消息到客户端. 你也可以重写 openon_close 来处理连接打开和关闭这两个动作.

    2、浏览器客户端的相应方法

    • w = new WebSocket(url) #初始化WebSocket对象
    • w.onmessage 接受服务端发来的信息(具体的可以参考文档)
    • w.send() 发信息给服务端
    • 其他 w.onopen, w.onerror

    相关文章

      网友评论

          本文标题:WebSocket的应用(二十二)

          本文链接:https://www.haomeiwen.com/subject/lafqmctx.html