websocket 的作用就不在此赘述了,下面通过一个简单的案例介绍websocket的使用。
安装包
pip install bottle
pip install bottle-websocket
服务器端编写
# websocketdemo.py
from bottle import route, run, static_file
from bottle.ext.websocket import GeventWebSocketServer
from bottle.ext.websocket import websocket
import time
@route("/")
def callback():
return static_file("websocket.html", root=".")
@route("/websocket", apply=[websocket])
def callback(ws):
count = 0
while True:
count += 1
time.sleep(1)
ws.send(str(count))
run(host='localhost', port=10000, server=GeventWebSocketServer)
前端编写
将 websocket.html
文件放在与websocketdemo.py
同目录下,内容为:
<!DOCTYPE html>
<html>
<head>
<title>websocket demo</title>
<script>
var ws = new WebSocket('ws:localhost:10000/websocket');
ws.onopen = function(evt){
console.log("on open");
}
ws.onclose = function(evt){
console.log("on close");
}
ws.onmessage = function(evt){
console.log(evt.data);
}
</script>
</head>
<body>
</body
</html>
运行
在终端输入:python websocketdemo.py
在浏览器端输入url:http://localhost:10000/
打开控制台,可以发现控制台每隔1秒显示一个数字:
控制台显示