首页 > 其他分享 >无涯教程-Socket.IO - 应用示例

无涯教程-Socket.IO - 应用示例

时间:2024-01-27 20:32:44浏览次数:23  
标签:http socket 示例 IO app 无涯 user io Socket

创建一个名为 app.js 的文件,然后输入以下代码来设置快速应用程序-

var app=require('express')();
var http=require('http').Server(app);

app.get('/', function(req, res) {
   res.sendfile('index.html');
});

http.listen(3000, function() {
   console.log('listening on *:3000');
});

我们需要一个 index.html 文件来提供服务,创建一个名为index.html的新文件,并在其中输入以下代码-

<!DOCTYPE html>
<html>
   <head>
      <title>LearnFk Hello Learnfk</title>
   </head>
   <body>Hello LearnFk</body>
</html>

要测试是否有效,请转到终端并使用以下命令运行此应用程序-

nodemon app.js

这将在localhost:3000上运行服务器。转到浏览器并输入localhost:3000进行检查。

无涯教程-Socket.IO - 应用示例_socket.io

这将设置我们的快速应用程序,并且现在在根路由上提供HTML文件。现在,我们将需要Socket.IO并在每次用户转到此页面时记录"A user connected",并在每次有人浏览/关闭此页面时记录"A user disconnected"。

var app = require('express')();
var http = require('http').Server(app);
var io = require('socket.io')(http);

app.get('/', function(req, res) {
   res.sendfile('index.html');
});

//Whenever someone connects this gets executed
io.on('connection', function(socket) {
   console.log('A user connected');

   //Whenever someone disconnects this piece of code executed
   socket.on('disconnect', function () {
      console.log('A user disconnected');
   });
});

http.listen(3000, function() {
   console.log('listening on *:3000');
});

require('socket.io')(http)创建一个附加到http服务器的新socket.io。 io.on事件处理程序使用Socket对象处理其中的连接,断开等事件。

我们已经将服务器设置为记录有关连接和断开连接的消息。现在,我们必须包括客户端脚本并在那里初始化Socket对象 ,以便客户端可以在需要时创建连接。该脚本由我们的 io服务器提供,位于'/socket.io/socket.io.js'。

完成上述过程后,index.html文件将如下所示-

<!DOCTYPE html>
<html>
   <head>
      <title>Hello Learnfk</title>
   </head>
   <script src="/socket.io/socket.io.js"></script>
   
   <script>
      var socket=io();
   </script>
   <body>Hello Learnfk</body>
</html>

如果现在转到localhost:3000(确保服务器正在运行),则会在浏览器中显示 Hello Learnfk ,现在检查您的服务器控制台日志,它将显示以下消息-

A user connected

如果刷新浏览器,它将断开Socket连接并重新创建。您可以在控制台日志中看到以下内容-

A user connected
A user disconnected
A user connected

现在,我们可以使用Socket连接了。这是在Socket.IO中设置连接的容易程度。

参考链接

https://www.learnfk.com/socket.io/socket.io-hello-world.html

标签:http,socket,示例,IO,app,无涯,user,io,Socket
From: https://blog.51cto.com/u_14033984/9445023

相关文章

  • jax框架为例:求hession矩阵时前后向模式的自动求导的性能差别
    注意:本文相关基础知识不介绍。给出代码:fromjaximportjacfwd,jacrevimportjax.numpyasjnpdefhessian_1(f):returnjacfwd(jacrev(f))defhessian_2(f):returnjacfwd(jacfwd(f))defhessian_3(f):returnjacrev(jacfwd(f))defhessian_4(f):ret......
  • Part 3:为什么 NetOps 是通往 AIOps 的桥梁
    转载网络运营(或NetOps)团队,传统上使用性能监控工具来管理企业网络的运行状况和性能。然而,网络使用量的增长加上分散的网络部署,导致许多人寻求替代的性能监控方法,包括使用人工智能进行IT运营(AIOps)。本文比较了NetOps实践中的传统性能监控方法,并讨论了团队最终转向采用AIOps的原......
  • 洛谷题解-P1673 [USACO05FEB] Part Acquisition S
    https://www.luogu.com.cn/problem/P1673题目描述奶牛们接到了寻找一种新型挤奶机的任务,为此它们准备依次经过N(1≤N≤5×104)N(1\leN\le5\times10^4)N(1≤N≤5×104)颗行星,在行星上进行交易。为了方便,奶牛们已经给可能出现的K(1≤K≤103)K(1\leK\le10^3)K(1≤K≤103)......
  • 无涯教程-Socket.IO - 环境
    要开始使用Socket.IO进行开发,您需要安装Node和npm(节点程序包管理器)。如果您没有这些,请转到节点设置,以在本地系统上安装节点。通过在终端中运行以下命令来确认已安装节点和npm。node--versionnpm--version您应该得到类似于以下内容的输出:v17.3.08.3.0打开终端,并在......
  • 2019-2020 ICPC Southwestern European Regional Programming Contest (SWERC 2019-20
    Preface这场总体打的不错,虽然最后RushL题失败,没有想到关键优化导致没卡过去有点可惜,但奈何徐神还是太C了最后10题下班,赛后祁神发现L关键优化10min改完就过了,同时赛中徐神也看出了E的做法,感觉这场时间充足甚至有AK的可能的说A.Environment-FriendlyTravel很典的一个题,不难......
  • Solution Set【2024.1.27】
    CF1778FMaximizingRoot首先不难证明不操作根节点一定不优,因此我们考虑操作根节点的情况。现在我们的问题转化为了:最大化操作根节点前的整个树的节点权值的最大公约数。由于可能的最大公约数值只有\(\mathcal{O}(\sqrt{V})\)种。因此我们考虑将其压入状态进行动态规划。设......
  • simulation roadmap
    thenextstepwouldbedevelopinganewmodellanguage.SIMANPegden,C.D.,IntroductiontoSIMAN,WinterSimulationConference1983.https://informs-sim.org/wsc83papers/1983_0004.pdfSturrock,D.T.,Pegden,C.D.,IntroductiontoSIMAN,ProceedingsWinte......
  • 无涯教程-Socket.IO - 简介
    Socket.IO是用于实时Web应用程序的JavaScript库。它支持Web客户端和服务器之间的实时双向通信。它包括两个部分:在浏览器中运行的客户端库和用于node.js的服务器端库,这两个组件具有相同的API。实时应用实时应用程序(RTA)是在用户感知为即时或当前的时段内运行的应用程序。实......
  • IO多路复用
    在Linux下,I/O多路复用是一种用于高效处理多个I/O操作的技术。它允许一个进程同时监视多个文件描述符或网络套接字,以便在其中任何一个发生I/O事件时能够及时响应。I/O多路复用的主要目标是提高系统的并发性能和资源利用率。通过同时监听多个I/O源,可以减少进程在等待I/O......
  • CLion搭建Qt开发环境,并解决目录重构问题(最新版)
    序言Qt版本不断更新,QtCreator也不断更新。在Qt4和Qt5时代,我一直认为开发Qt最好的IDE就是自带的QtCreator,可是时至今日,到了Qt6时代,QtCreator已经都12.0.1版本了,不仅没变的更好用,反而变得更难用了。一方面可能是我被JetBrains全家桶和各种AI代码提示插件给惯坏了,另一方面也可能是开......