SocketIO:何时使用io,何时使用socket?



我正在学习节点和socket io。我一直在看教程,一开始很好,但是,他们开始混淆使用socket.on(), socket.emit()io.on(), io.emit()。这似乎很令人困惑。谁能明确我的概念,在哪里使用io和在哪里使用socket在nodejs?

逻辑上认为io是顶级套接字。IO引擎管理器。如果你想在顶层做一些事情,要么创建某种资源,比如socket,要么创建一个新的命名空间对象,要么向命名空间中的所有现有连接发送消息,那么你可以使用io

一旦你创建了像套接字这样的资源,你就可以使用这个对象本身来对它进行操作。

在服务器上,当您想要侦听新连接或想要向所有连接广播时,您可以使用io。你还可以用它做一些其他的事情。

在客户端,当您想连接到服务器时,您使用io

当您想要与一个特定的连接通信时,您可以使用socket,因为该连接由socket对象表示。因此,每个客户端连接都有一个socket对象,您通过使用socket对象上的方法向该客户端发送或接收信息。

因此,const socket = io.connect(url)或作为快捷方式const socket = io(url)将客户端连接到服务器并为您提供客户端socket对象。

io.on('connection, socket => { ... })将在服务器上侦听传入的客户端连接,并为该新连接提供socket

socket.emit()发送消息到特定套接字的另一端(无论是客户端还是服务器端)。

服务器上的io.emit()向所有当前连接的客户端发送消息(技术上所有连接到顶级io命名空间的客户端-可以有其他命名空间)。

最新更新