美文网首页
2018-09-05:Python flask-sockets

2018-09-05:Python flask-sockets

作者: linyk3 | 来源:发表于2018-09-05 23:57 被阅读0次

今天来学习使用Python中的 flask 和 flask_sockets 来搭建一个简单的Server-Client 服务。

Server 端

首先是Flask-Sockets 官网,还有 Github
官方对Flask-Sockets 的介绍十分简单:
Project description
Elegant WebSockets for your Flask apps.
Flask-Sockets是Flask框架的一个扩展,通过它,Flask应用程序可以优雅地使用WebSocket服务。
注意:Flask-SocketsFlask-SocketIO是两个不同的Flask扩展库
Flask-Sockets 仅仅将WebSocket协议进行包装,只能使用WebSocket服务;
Flask-SocketIO 不仅包装了WebSocket协议,很可以实现其他更多的功能。

开始运行程序前,需要安装Python的两个库: flaskflask-sockets
安装命令:
pip install flask

image.png

pip install flask-sockets

image.png

然后按照github上面的demo就可以创建一个server了:

from flask import Flask
from flask_sockets import Sockets


app = Flask(__name__)
sockets = Sockets(app)


# socket 路由,访问url是: ws://localhost:5000/echo
@sockets.route('/echo')
def echo_socket(ws):
    while not ws.closed:
        message = ws.receive()
        ws.send("come from web server: " + str(message))

# http 路由,访问url是: http://localhost:5000/
@app.route('/')
def hello():
    return 'Hello World!'


if __name__ == "__main__":
    from gevent import pywsgi
    from geventwebsocket.handler import WebSocketHandler
    server = pywsgi.WSGIServer(('', 5000), app, handler_class=WebSocketHandler)
    print("web server start ... ")
    server.serve_forever()


if __name__ == "__main__":
    from gevent import pywsgi
    from geventwebsocket.handler import WebSocketHandler
    server = pywsgi.WSGIServer(('', 5000), app, handler_class=WebSocketHandler)
    print("web server start ... ")
    server.serve_forever()

执行这个python程序就可以启动server了


image.png

在浏览器输入:http://localhost:5000/ 就可以访问 根路由 "/" 了,返回的消息是'Hello World!'

image.png

这样就可以验证Server端正常运行了。

Client 端

Client 端 通过 websocket-client 这个库也可以非常简单的实现

from websocket import create_connection
# 通过socket路由访问
ws = create_connection("ws://localhost:5000/echo")
ws.send("Hello, linyk3")
result = ws.recv()
print(result)
ws.close()

上面代码中import的是 webcket, 但是在pip安装Python库的时候,如果是安装 websocket,会提示报错:

image.png image.png

实际上需要安装的是 websocket-client

image.png image.png

当Server端正常运行是,实现Client程序,通过结果可以知道Server-Client两端的交互是通的:


image.png

相关文章

  • 2018-09-05:Python flask-sockets

    今天来学习使用Python中的 flask 和 flask_sockets 来搭建一个简单的Server-Clie...

  • flask-websocket(2)前后端分离带简单界面

    用的还是flask-sockets 好像没有出现跨域报错的问题。 后端代码 前端代码templates/index...

  • 2018-09-05

    戴师傅 2018-09-05 2018-09-05 20:32 打开App (稻盛哲学学习会)打卡第127天 姓名...

  • 2018-09-04

    2018-09-05 12:53 跳操30分钟

  • 亲子日记(41)-舞

    2018-09-05 星期三 晴 少年舞 一 秋阳斜依,霞光掩映, 悠悠...

  • 望书中樵夫不吝赐教

    钗头凤 泪雨 书中樵夫 关注 2018-09-05 06:45 · 字数 85 · 阅读 402 · 樵夫诗词集 ...

  • 赛诗会

    钗头凤 泪雨 书中樵夫 关注 2018-09-05 06:45 · 字数 85 · 阅读 402 · 樵夫诗词集 ...

  • 赛诗会

    钗头凤 泪雨 书中樵夫 关注 2018-09-05 06:45 · 字数 85 · 阅读 402 · 樵夫诗词集 ...

  • 佛法无边

    吴青青 2018-09-05 阅读 383 (一) 苍苍人世,四大皆空。 人生赤...

  • 2018-09-05

    2018-09-05 万千工品金秀 2018-09-01 23:46 · 字数 816 · 阅读 2 · 日记本 ...

网友评论

      本文标题:2018-09-05:Python flask-sockets

      本文链接:https://www.haomeiwen.com/subject/tlftgftx.html