0x00
前言
一般情况下网站前端和后台的交互主要以ajax的方式完成。
如果遇到一些对实时比较高且频繁的接口,最好还是用 ws 协议会更加好。对于带宽不大充裕的云服务器来说,更加友好。(为什么说云服务器带宽不充裕?嘿嘿~带宽太贵了)
本文环境配置:
Flask == 1.1.1
Flask-Sockets == 0.2.1
visual studio 2017 \ 2015
0x01
后端代码#如果是在vs中创建的flask项目,下面的代码应添加到 runserver.py
if __name__ == '__main__':
form gevent import pywsgi
from geventwebsocket.handler import WebSocketHandler
#初始化服务器
server = pywsgi.WSGIServer((0.0.0.0,5555),app,handler_class=WebSocketHandler)
server.serve_forever()#如果是在vs中创建的flask项目,这在 views.py 添加下面的代码,若不是,请自行理解代码并添加到合适的位置
sockets = Sockets(app) #app是flask的默认服务器对象
#ws路由
@sockets.route('/echo')
def echo_socket(ws):
while not ws.closed:
mes = ws.receive() #读取客户端发送过来的数据
print(mes)
ws.send("hi,client!!!") #向浏览器传送数据
0x02
前端代码
var ws = new WebSocket("ws://127.0.0.1:5555/echo");
ws.onopen = function(){
//打开ws连接
};
ws.onmessage = function(evt){
//接受到服务器数据的业务代码
console.info(evt.data);
};
//ws.onclose = function(){} //关闭ws链接
ws.send("发送数据到服务器");