Python利用pywss库实现Websocket

pywss是一种类似Flask开发的WebSocket-Server服务端框架,适用python3.X

一、安装

pip install pywss

二、使用

from pywss import Pyws, route

@route(/websocket)
def my_websocket(request, data):
    print(‘客户端发来数据:%s’ % data)
    return data +  - data from pywss

if __name__ == __main__:
    ws = Pyws(__name__, address=127.0.0.1, port=8888)
    ws.serve_forever()

html:

<!DOCTYPE html>
<html>
<head>
    <title>django-websocket</title>
    <script src="http://code.jquery.com/jquery-1.11.1.min.js"></script>
    <script type="text/javascript">//<![CDATA[
    $(function () {
        $(#connect_websocket).click(function () {
            if (window.s) {
                window.s.close()
            }
            /*创建socket连接*/
            var socket = new WebSocket("ws://127.0.0.1:8888/websocket");
            socket.onopen = function () {
                console.log(WebSocket open);//成功连接上Websocket
            };
            socket.onmessage = function (e) {
                console.log(message:  + e.data);//打印出服务端返回过来的数据
                $(#messagecontainer).prepend(<p> + e.data + </p>);
            };
            // Call onopen directly if socket is already open
            if (socket.readyState == WebSocket.OPEN) socket.onopen();
            window.s = socket;
        });
        $(#send_message).click(function () {
            //如果未连接到websocket
            if (!window.s) {
                alert("websocket未连接.");
            } else {
                window.s.send($(#message).val());//通过websocket发送数据
            }
        });
        $(#close_websocket).click(function () {
            if (window.s) {
                window.s.close();//关闭websocket
                console.log(websocket已关闭);
            }
        });
 
    });
    //]]></script>
</head>
<body>
<br>
<input type="text" id="message" value="Hello, World!"/>
<button type="button" id="connect_websocket">连接 websocket</button>
<button type="button" id="send_message">发送 message</button>
<button type="button" id="close_websocket">关闭 websocket</button>
<h1>Received Messages</h1>
<div id="messagecontainer">
 
</div>
</body>
</html>
经验分享 程序员 微信小程序 职场和发展