WebSocket的应用(二十二)

参考文档: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
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容