Easy WebSockets with Flask and Gevent

Easy WebSockets with Flask and Gevent

  • WebSocket是HTML5引入的一种新的通信协议,主要由web客户端和服务器来实现,尽管它也可以在web之外实现。

与HTTP连接不同,WebSocket连接是客户端和服务器之间的一个永久的双向通信通道,其中任何一方都可以发起交换。一旦建立,连接将保持可用,直到其中一方断开连接。

WebSocket连接对于需要以非常低的延迟显示实时信息的游戏或网站非常有用。在此协议存在之前,还有其他效率低得多的方法来实现相同的结果,如Comet。

  • SocketIO是一个跨浏览器的Javascript库,它将客户机应用程序从实际的传输协议中抽象出来。现代浏览器使用WebSocket协议,但对于没有WebSocket的旧浏览器,SocketIO使用一种较旧的解决方案来模拟连接,这是每个给定客户端的最佳解决方案。

最重要的事实是,在所有情况下,应用程序使用相同的接口,不同传输机制抽象背后共同的API,所以使用SocketIO你几乎可以确保任何浏览器将能够连接到您的应用程序,并为每个浏览器将使用最有效的方法。

  • 不久前,Kenneth Reitz发布了Flask- sockets,这是Flask的另一个扩展,可以让Flask的应用程序访问WebSocket。

Flask-Sockets和Flask-SocketIO之间的主要区别在于前者封装了本机WebSocket协议(通过使用geevent - WebSocket项目),因此它只能被大多数具有本机支持的现代浏览器使用。flasksocketio透明地对旧浏览器进行降级。

另一个区别是,Flask-SocketIO实现了SocketIO Javascript库公开的消息传递协议。Flask-Sockets只是实现了通信通道,在其上发送什么完全取决于应用程序。

Flask-SocketIO还为事件处理程序创建了一个接近常规视图函数的环境,包括创建应用程序和请求上下文。然而,文档中解释了一些重要的例外情况。

https://blog.miguelgrinberg.com/post/easy-websockets-with-flask-and-gevent

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值