【发布时间】:2020-10-10 12:08:57
【问题描述】:
有人可以解释一下socket,socketio,flask socketio在python方面的区别吗? 为了使用这个带有颤动的套接字,我应该在后端编写什么代码?比如我应该写服务器和客户端还是只写客户端?
【问题讨论】:
标签: flutter websocket socket.io flask-socketio flask-sockets
有人可以解释一下socket,socketio,flask socketio在python方面的区别吗? 为了使用这个带有颤动的套接字,我应该在后端编写什么代码?比如我应该写服务器和客户端还是只写客户端?
【问题讨论】:
标签: flutter websocket socket.io flask-socketio flask-sockets
socket 是网络上运行的两个程序之间双向通信链路的一个端点。这是一个非常底层的东西,其他一切都是在 TCP 套接字之上实现的。
WebSocket 是网络的标准通信协议。它允许在客户端和服务器之间建立全双工通信通道。
Socket.IO 是一种建立在 HTTP 和 WebSocket 之上的通信协议,提供额外的功能,例如自动重新连接、基于事件的通知等。
Flask-SocketIO 是作为 Flask 扩展的 Socket.IO 服务器端协议的实现。
要从您的 Flutter 应用程序访问 Socket.IO 服务器,您需要使用 Socket.IO 客户端。我自己不使用颤振,所以我不能推荐一个。
【讨论】:
HTTP 请求是这样的,如果我们使用浏览器在 URL 或搜索栏上写一些东西,那么
这需要一些东西,得到一些东西,这种系统适用于各种各样的事情,比如阅读新闻或查看天气。
但如果你想获得更实时的信息,比如聊天,你就必须一直在请求。
Websocket 的目的是允许与后端服务器建立持久的“连接”,这样客户端就不必像浏览器那样等待另一个时间。
因此任何人都可以创建一个后端和前端组合系统,该系统可以非常快速且响应迅速地对新数据做出反应,就好像它是流入您的客户端(如网络客户端、移动应用程序)的流一样
你必须同时编写服务器和客户端来实现实时应用,并且客户端需要连接到服务器。
如果你想制作一个视频通话应用程序,那么你需要交换一些信息,如SDP、ICE Candidate 等。所以要交换这些信息,你必须开发一个信令服务器,以便服务器可以将这些信息发送到实时发送到其各自的客户端。
在每一个平台上,都可以实现socket技术。所以socketio、flask socket是同一个东西在不同平台的不同形式。
【讨论】:
简而言之,WebSocket 是建立在设备 TCP/IP 堆栈之上的薄传输层。其目的是为 Web 应用程序开发人员提供本质上尽可能接近原始的 TCP 通信层,同时添加一些抽象来消除在 Web 工作方式方面可能存在的某些摩擦。它们还迎合了这样一个事实,即 Web 具有必须考虑的额外安全考虑,以保护消费者和服务提供商。 Ably 的深入研究是掌握 websockets 的绝佳资源:http://go.ably.com/websockets
对于希望在客户端和服务器之间建立双向套接字连接的开发人员来说,Socket.IO 是一个很好的工具。这使得实时聊天等简单的应用程序更易于实现。 Socket.IO 使许多事情变得更容易,并为不受支持的客户端提供后备,但也有其自身的权衡。 Ably 还写了一篇概念文章,概述了 Socket.IO 的主要用例以及如何开始:http://go.ably.com/socketio
【讨论】: