Websocket 簡單對話:靜態網頁與pycharm對話
阿新 • • 發佈:2019-03-22
env 規範 rec pla 如果 new span event wid
WebSocket
websocket 是一種在單個Tcp連接上進行雙全工通信的協議.websocket通信協議於2011年被IETF定為標準RFC6455,並
由RFc7936補充規範.WebSocket APL也被w3c定為標準
WebSocket使得客戶端和服務器之間的數據交換變得更加簡單,允許服務端主動向客戶端推送數據,在 WebSocket APL
中,瀏覽器和服務器只需要完成一次握手,兩者之間就直接可以創建持久性的連接,並進行雙向數據傳輸.
解釋: 基於TCP的全雙工通信協議
優點: 服務器可以主動傳送數據給客戶端
功能: 實現了瀏覽器與服務器雙全工通信
簡單聊天
首先我們要先安裝Webscoket ,如果安裝了就不用了
其次創建一個py文件和一個html文件
from flask import Flask,request from geventwebsocket.handler import WebSocketHandler from gevent.pywsgi import WSGIServer from geventwebsocket.websocket import WebSocket app = Flask(__name__) @app.route("/conn_ws") def ws_app():.py# print(request.environ) """ wsgi.websocket:<geventwebsocket.websocket.WebSocket object at 0x0000000003Bc8528> :return: """ user_socket = request.environ.get("wsgi.websocket") while True: msg =user_socket.receive() print(msg) user_socket.send(msg)#1 已經開啟的websocket連接 #3 開啟了websocket連接 然後 斷開了 return "123" if __name__ =="__main__": http_serv = WSGIServer(("0.0.0.0",9527),app,handler_class=WebSocketHandler) http_serv.serve_forever()
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <script type="application/javascript"> var ws=new WebSocket("ws://127.0.0.1:9527/conn_ws"); ws.onmessage =function (messageEvent) { console.log(messageEvent.data); } </script> </body> </html>.html
打開靜態頁面 ,打開
報錯不用管 !!!!
Websocket 簡單對話:靜態網頁與pycharm對話