2017-08-09 113 views
-3

为什么他们一起使用?什么是socket.io和Redis?

我是Node.js及其NPM软件包的新手,我尝试了解他们的用途以及他们为什么一起使用。我试着阅读他们的文档,但我仍然不明白。

回答

3

socket.io是一个通信包,允许客户端和服务器有一个长时间运行的连接,可以随时发送其他消息。有多种原因可以使用socket.io连接来代替http请求,但主要的原因是当客户端和服务器之间有连续的连接时,服务器可以随时“推送”数据给客户端而无需等待客户请求。这对获取服务器上发生的事情的即时通知非常有用。

Redis是一个快速的数据库,通常将数据保存在内存中,而不是磁盘上,所以它通常用于临时数据,而不必永久存储。

有一个适用于socket.io的适配器,它使用redis,当您想在集群或多服务器环境中使用socket.io时使用该适配器。然后,当你想通过他的socket.io连接发送数据到“Bob”时,它是使用redis数据库的socket.io适配器,它跟踪哪个服务器“Bob”连接到哪个服务器,以及如何发送数据给他。

除了与socket.io一起使用以外,Redis还有许多其他用途。从我所看到的情况来看,redis的一个主要用途是当你有多个服务器进程(在同一主机或不同主机上),都希望快速访问某种“状态”信息。在上述的socket.io中,状态是“Bob当前连接到的服务器”。在其他情况下,它可能是客户端会话对象或类似于其他任何状态的信息,或者是所有服务器都想要访问的其他状态信息。

+0

清除了一些东西。 谢谢!我会接受yoru的回答。 –

0

Socket.IO支持实时双向事件通信。 它适用于每个平台,浏览器或设备,同时关注可靠性和速度。

检查网站https://socket.io

的Redis是一个内存中的数据结构存储,用作数据库,缓存和消息代理https://redis.io

为什么它们一起使用可能是创建某种实时的应用程序

NPM基本上是Node的包管理器,它使您能够通过添加预开发的模块来开发应用程序来快速轻松地扩展节点。

我希望这有助于

0

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

Redis是一个开源(BSD许可),内存数据结构存储,用作数据库,缓存和消息代理。它支持数据结构,如字符串,散列,列表,集合,具有范围查询的排序集,位图,超级日志和具有半径查询的地理空间索引。

希望这有助于,这里是我获得信息https://scalegrid.io/blog/using-redis-with-node-js-and-socket-io/的链接。如果你想获得一些这些技术的实际经验,它还有一个简单的聊天程序供你创建。

+0

谢谢,我会与他们创建一个聊天应用程序,以获得一些实际的经验。 –

+0

享受它是学习的最佳途径之一! – Chase

相关问题