我的编程空间,编程开发者的网络收藏夹
学习永远不晚

node中socket.io的事件使用详解

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

node中socket.io的事件使用详解

socket.io类库不但可以相互发送消息,而且还可以通过socket端口对象的emit方法互相发送事件.

emit在之前的事件上说过现在一句话带过:emit是用来手动触发事件的.

socket.emit(event,data,function(data1,data2......){

});

在使用emit方法发送事件时,可以再另一端使用socket端口对象的on方法会once方法监听.

socket.on(event,function(data,fn){

});

socket.once(event,function(data,fn){

})

上面的回调函数中的参数data:对方发送的事件中携带的数据,

fn:对方在发送事件时指定的callback回调函数.

案例1:当服务器和客户端连接后,向客户端发送一个news事件,事件中携带一个对象,该对象的hello属性值为"你好".在接收到客户端发送my other event事件时,在控制台中输出"服务器端就收到数据"+客户端发送事件中携带的数据.

服务器端代码,server.js

var http=require("http");

 var sio=require("socket.io");

 var fs=require("fs");

 var server=http.createServer(function (req,res) {

     res.writeHead(200,{"Content-type":"text/html"});

     res.end(fs.readFileSync("./index.html"));

 });

 server.listen(1337);

 var socket=sio.listen(server);

 socket.on("connection", function (socket) {

     socket.emit("news",{hello:"你好"});

     socket.on("my other event", function (data) {

         console.log("服务器端接受到信息%j",data);

     });

 });

客户端index.html代码:

<!DOCTYPE html>

 <html>

 <head lang="en">

     <meta charset="UTF-8">

     <title></title>

     <script class="lazy" data-src="/socket.io/socket.io.js"></script>

     <script>

         var socket=io.connect();

         socket.on("news", function (data) {

             console.log(data.hello);

             socket.emit("my other event",{my:"data"});

         });        

     </script>

 </head>

 <body>

 

 </body>

运行结果:、

查看图片
可以发现一点:执行总是在监听端,而不是手动执行端.

案例2:在手动触发对方事件时,指定回调函数.

当客户端和服务端连接后,向客户端发送setName事件,事件携带"张三",触发事件时,指定一个回调函数,该回调函数向控制台输出2个参数值.

var http=require("http");

 var sio=require("socket.io");

 var fs=require("fs");

 var server=http.createServer(function (req,res) {

     res.writeHead(200,{"Content-type":"text/html"});

     res.end(fs.readFileSync("./index.html"));

 });

 server.listen(1337);

 var socket=sio.listen(server);

 socket.on("connection", function (socket) {

     socket.emit("setName","张三", function (data1,data2) {

         console.log(data1);

         console.log(data2);

     });

 });

<!DOCTYPE html>

 <html>

 <head lang="en">

     <meta charset="UTF-8">

     <title></title>

     <script class="lazy" data-src="/socket.io/socket.io.js"></script>

     <script>

         var socket=io.connect();

         socket.on("setName", function (name,fn) {

            console.log(name);

             fn("李四","王五");

         });      

     </script>

 </head>

 <body>

 

 </body>

 </html>

执行结果:

查看图片

回调函数实在触发端执行的.

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

node中socket.io的事件使用详解

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

node中socket.io的事件使用详解

socket.io类库不但可以相互发送消息,而且还可以通过socket端口对象的emit方法互相发送事件. emit在之前的事件上说过现在一句话带过:emit是用来手动触发事件的.socket.emit(event,data,functio
2022-06-04

如何在node的express中使用socket.io

服务器端server.js代码var express=require("express");var http=require("http");var sio=require("socket.io");var app=express();va
2022-06-04

node path的使用详解

这篇文章主要介绍了node path的使用详解,使用path.join()方法,可以把多个路径片段拼接为完整的路径字符串,本文通过实例代码给大家介绍的非常详细,需要的朋友可以参考下
2022-11-13

node中的__filename和__dirname的使用详解

本文主要介绍了node中的__filename和__dirname的使用详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
2023-03-23

详解Vue3中Watch监听事件的使用

这篇文章主要为大家详细介绍了Vue3中Watch监听事件的使用的相关资料,文中的示例代码讲解详细,对我们学习Vue3有一定的帮助,需要的可以参考一下
2023-02-10

详解Laravel模型事件和模型事件在Trait中的使用

这篇文章主要为大家介绍了详解Laravel模型事件和模型事件在Trait中的使用详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
2023-03-07

js oncontextmenu事件使用详解

oncontextmenu事件是在用户右击页面上的元素时触发的JavaScript事件。它通常用于阻止默认的右键菜单弹出,并自定义一个自定义的右键菜单。使用oncontextmenu事件的语法如下:```javascriptelement.
2023-08-08

Node ORM项目中使用Sequelize实例详解

这篇文章主要为大家介绍了Node ORM项目中使用Sequelize实例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
2023-05-16

一文详解如何使用node执行js文件

Node.js开发者过去通常将大多数可执行命令发布为全局的软件包,以使它们处于路径中且可被立即地执行,下面这篇文章主要给大家介绍了关于如何使用node执行js文件的相关资料,需要的朋友可以参考下
2023-01-09

Node.js中使用事件发射器模式实现事件绑定详解

在Node里,很多对象都会发射事件。比如,一个TCP服务器,每当有客户端请求连接就会发射“connect”事件,又比如,每当读取一整块数据,文件系统就会发射一个“data”事件。这些对象在Node里被称为事件发射器(event emitte
2022-06-04

nodejs处理图片的中间件node-images详解

Cross-platform image decoder(png/jpeg/gif) and encoder(png/jpeg) for Node.jsnode.js轻量级跨平台图像编解码库var images = require("ima
2022-06-04

详解Node.js中的事件机制

前言 在前端编程中,事件的应用十分广泛,DOM上的各种事件。在Ajax大规模应用之后,异步请求更得到广泛的认同,而Ajax亦是基于事件机制的。 通常js给我们的第一印象就是运行在客户端浏览器上面的脚本,通过node.js我们可以在服务端运行
2022-06-04

Flutter事件监听与EventBus事件的应用详解

EventBus的核心是基于Streams。它允许侦听器订阅事件并允许发布者触发事件,使得不同组件的数据不需要一层层传递,可以直接通过EventBus实现跨组件通讯
2023-05-15

详解在Cocos2D-html5中的键盘事件与touch事件

编程学习网:关于Cocos2D-html5中的键盘事件与touch事件,初学者可能还不是很了解,本篇教程将带你深入了解Cocos2D-html5中的键盘事件与touch事件。
详解在Cocos2D-html5中的键盘事件与touch事件
2024-04-23

Laravel中间件的使用详解

Laravel 中间件提供了一种方便的机制来过滤进入应用的 HTTP 请求。这篇文章主要和大家介绍一下Laravel中间件的创建和使用,需要的可以参考一下
2023-02-08

编程热搜

目录