什么是使用Socket.IO的主要场景

只是想知道为什么我们需要从哪种应用或案例的angular度来看Socket.IO 。

我是iOS开发人员,了解开源项目socket.IO-objc

通常我们需要HTTP或HTTPS来与服务器通信,套接字的目的是达到实时通信(应该始终保持来自HTTP的活动)

当我们需要在我们的应用程序实时的时候需要像socket.IO这样的库。 让我稍微详细地解释一下。 让我们假设你正在开发一个游戏,这是多人游戏,2个或更多的用户可以同时玩。 那么在这种情况下,您将不会进行HTTP或HTTPS调用,原因很多,其中一个原因是它们的数据包大小很大,另一个则是这些调用非常慢。 在这种情况下,我们使用套接字等库来发送和接收数据到服务器。 套接字非常快,并且只能发送那些需要的数据包。 使用HTTP编程,你永远不能创build任何多人游戏或任何应用程序将实时与服务器交互。

再举一个例子。 让我们假设你正在使用一个聊天应用程序。 当用户A正在input内容时,用户B应该知道A正在键入,(类似于facebook messenger的gtalk)。 如果您在此时使用HTTP调用,则“B”由于延迟而无法查看其他人的实际状态。 所以我们可以使用的是套接字,然后用户A正在input任何东西,然后他的设备将只发送一个数据包,这将只是通知服务器,他正在打字,并将交付给用户B,这个过程是非常快(几乎实时) 。 并且还会减less数据传输。

我正在使用socket.io进行聊天应用程序。 所以它似乎用socket.ioreplace所有东西。 这使我怀疑和好奇。 我完全同意socket.io这样的实时应用,如聊天套装。 但是,有更适合HTTP的往返通信(如用户login)。

Socket.IO是一个用于实时Web应用程序的JavaScript库。 它可以实现Web客户端和服务器之间的实时双向通信。 它有两部分:在浏览器中运行的客户端库和node.js的服务器端库。 这两个组件都有一个几乎相同的API。