📝 Socket.IO教程
14篇技术文档📅  最后修改于: 2020-11-02 04:51:01        🧑  作者: Mango
Socket.IO支持基于事件的实时双向通信。它可在每个平台,浏览器或设备上运行,并同时关注可靠性和速度。 Socket.IO建立在WebSockets API(客户端)和Node.js之上。它是npm(节点程序包管理器)上最依赖的库之一。本教程是为具有HTML,Javascript和Node.js工作基础知识的任何人创建的。完成本教程后,读者将能够构建中等复杂的实时网站,移动应用程序的后端和推送...
📅  最后修改于: 2020-11-02 04:51:26        🧑  作者: Mango
Socket.IO是一个用于实时Web应用程序的JavaScript库。它支持Web客户端和服务器之间的实时双向通信。它包含两个部分:在浏览器中运行的客户端库和用于node.js的服务器端库。这两个组件具有相同的API。实时应用实时应用程序(RTA)是在用户感知为即时或当前的一段时间内运行的应用程序。实时应用的一些例子是-即时通讯程序-聊天应用程序,如Whatsapp,Facebook Messe...
📅  最后修改于: 2020-11-02 04:51:52        🧑  作者: Mango
要开始使用Socket.IO进行开发,您需要安装Node和npm(节点程序包管理器)。如果没有这些,请转到“节点设置”以在本地系统上安装节点。通过在终端中运行以下命令来确认已安装节点和npm。您应该得到类似于以下内容的输出:打开终端,并在终端中输入以下内容以创建新文件夹,然后输入以下命令-它会问你一些问题;用以下方式回答他们-这将创建一个“ package.json node.js”配置文件。现在...
📅  最后修改于: 2020-11-02 04:52:26        🧑  作者: Mango
创建一个名为app.js的文件,并输入以下代码以设置快速应用程序-我们将需要一个index.html文件来提供服务,创建一个名为index.html的新文件,并在其中输入以下代码-要测试是否有效,请转到终端并使用以下命令运行此应用程序-这将在localhost:3000上运行服务器。转到浏览器并输入localhost:3000进行检查。这将设置我们的快速应用程序,并且现在在根路由上提供HTML文件...
📅  最后修改于: 2020-11-02 04:53:05        🧑  作者: Mango
套接字基于事件工作。有一些保留的事件,可以使用服务器端的套接字对象进行访问。这些是-连接信息断开重新连接平加入并离开客户端套接字对象还为我们提供了一些保留事件,它们是-连接连接错误Connect_timeout重新连接等在Hello World示例中,我们使用连接和断开连接事件记录用户连接和离开的时间。现在,我们将使用message事件将消息从服务器传递到客户端。为此,请修改io.on(’conn...
📅  最后修改于: 2020-11-02 04:53:33        🧑  作者: Mango
广播意味着向所有连接的客户端发送消息。广播可以在多个级别进行。我们可以将消息发送给所有连接的客户端,命名空间上的客户端以及特定房间中的客户端。要向所有客户端广播事件,我们可以使用io.sockets.emit方法。注意-这会将事件发送给所有连接的客户端(事件可能触发此事件的套接字)。在此示例中,我们将向所有用户广播已连接客户端的数量。更新app.js文件以合并以下内容。在客户端,我们只需要处理广播...
📅  最后修改于: 2020-11-02 04:53:52        🧑  作者: Mango
Socket.IO允许您“命名”套接字,这实际上意味着分配不同的端点或路径。这是一项有用的功能,可通过在通信通道之间引入分隔来最大程度地减少资源(TCP连接)的数量,并同时在应用程序内分隔关注点。多个名称空间实际上共享同一WebSockets连接,从而为我们节省了服务器上的套接字端口。命名空间是在服务器端创建的。但是,客户端通过向服务器发送请求来加入它们。默认命名空间根名称空间“ /”是默认名称空...
📅  最后修改于: 2020-11-02 04:54:11        🧑  作者: Mango
在每个名称空间内,您还可以定义套接字可以加入和离开的任意通道。这些通道称为房间。房间用于进一步分离问题。房间还共享与名称空间相同的套接字连接。使用房间时要记住的一件事是它们只能在服务器端连接。加盟室您可以在套接字上调用join方法,以将套接字订阅到给定的通道/房间。例如,让我们创建一个名为“ room- <room-number>”的房间并加入一些客户。此会议室已满时,请创建另一个会议室并在那里加...
📅  最后修改于: 2020-11-02 04:54:27        🧑  作者: Mango
迄今为止,我们一直在本地服务器上工作,几乎永远不会给我们提供与连接,超时等有关的错误。但是,在实际生产环境中,处理此类错误至关重要。因此,我们现在将讨论如何处理客户端的连接错误。客户端API为我们提供了以下内置事件-连接-客户端成功连接时。连接-客户端正在连接时。断开连接-客户端断开连接时。Connect_failed-与服务器的连接失败时。错误-从服务器发送错误事件。消息-服务器使用send函数...
📅  最后修改于: 2020-11-02 04:54:43        🧑  作者: Mango
Socket.IO使用由ExpresJS的主要作者开发的非常著名的调试模块,称为debug。较早的Socket.IO曾经将所有内容记录到控制台,这使得调试问题非常困难。在v1.0版本之后,您可以指定要记录的内容。服务器端查看可用信息的最佳方法是使用*-这将使服务器控制台发生的一切变色并输出。例如,我们可以考虑以下屏幕截图。客户端将此粘贴到控制台,单击Enter并刷新页面。这将再次将与Socket....
📅  最后修改于: 2020-11-02 04:55:05        🧑  作者: Mango
在本章中,我们将讨论回退,使用Socket.IO的连接,事件和消息。后备Socket.IO具有许多基础的传输机制,可以处理由于跨浏览器问题,WebSocket实现,防火墙,端口阻塞等而引起的各种约束。尽管W3C具有针对WebSocket API的已定义规范,但仍缺乏实现。 Socket.IO为我们提供了可处理此类问题的后备机制。如果我们使用本机API开发应用,则必须自己实现后备。 Socket.I...
📅  最后修改于: 2020-11-02 04:55:30        🧑  作者: Mango
现在我们已经很熟悉Socket.IO,让我们编写一个聊天应用程序,可以在不同的聊天室中使用它进行聊天。我们将允许用户选择用户名,并允许他们使用他们聊天。因此,首先,让我们设置HTML文件以请求用户名-现在,我们已经设置了HTML以请求用户名,让我们创建服务器以接受来自客户端的连接。我们将允许人们使用setUsername事件发送他们选择的用户名。如果存在用户,我们将通过userExists事件进行...
📅  最后修改于: 2020-11-02 04:55:45        🧑  作者: Mango
以下资源包含有关Socket.IO的其他信息。请使用它们来获得有关该主题的更深入的知识。Socket.IO上的有用链接Socket.io-socket.io的官方网站,它包括Socket.io库和相关文档的完整详细信息。npm上的Socket.io npm上的socket.io存储库关于Socket.IO的有用书籍要在此页面上注册您的网站,请发送电子邮件至contact@tutorialspoin...
📅  最后修改于: 2020-11-02 04:55:57        🧑  作者: Mango
Socket.IO支持基于事件的实时双向通信。它可在每个平台,浏览器或设备上运行,并同时关注可靠性和速度。 Socket.IO建立在WebSockets API(客户端)和Node.js之上。它是npm(节点程序包管理器)上最依赖的库之一。...