node.js中使用socket.io的方法


Posted in Javascript onDecember 15, 2014

使用socket.io的使用创建一个socket.io服务器即可.但是该服务器依赖于一个已经创建的http服务器.

在http服务器运行之后,使用listen方法为该http服务器附加一个socket.io服务器.

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

var socket=sio.listen(server);

socket就是在server基础上创建的一个socket.io服务器.

当客户端与服务器端建立连接时,触发socket.io服务的connection事件.

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

});

回调函数中的socket参数是服务器端与客户端建立连接的socket端口对象.

当接收到客户端发送的消息时,发出socket端口对象的message事件.

socket.on("message",function(msg){

});

回调函数的参数是客户端发送的消息.

可以使用socket.send(msg)向客户端发送一个消息.

当服务器端可客户端的连接断开时触发disconnect事件.

socket.on("disconnect",funciton(){

});

该回调函数不适用任何参数.

服务器端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) {

    console.log("客户端建立连接");

     socket.send("你好");

     socket.on("message", function (msg) {

         console.log("接收到一个消息:"+msg);

     });

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

         console.log("客户端断开连接.");

     });

 });

创建客户端index.html代码:

 <!DOCTYPE html>

 <html>

 <head lang="en">

     <meta charset="UTF-8">

     <title></title>

     <script src="/socket.io/socket.io.js"></script>

     <script>

         var socket=io.connect();

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

             console.log(data);

             socket.send("消息已接受到.")

         });

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

             console.log("服务器端断开连接.");

         });

     </script>

 </head>

 <body>

 </body>

 </html>

这段代码:/socket.io/socket.io.js有服务器端socket.io类库提供,不需要再客户端实际放置一个socket.io.js文件.

在脚本文件中,首先使用io.connect()方法连接服务器端socket.io服务器.

该方法返回一个与服务器端建立连接的客户端socket端口对象.

当接受到服务器端发送的消息时,触发客户端socket端口对象的message事件.

socket.on("message",function(msg){

});

msg是服务器端发送的数据;

也可以使用客户端的socket对象的send()方法向服务器端发送数据.

socket.send(msg);

当服务器端断开连接时,触发客户端socket端口对象的disconnect事件,

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

})

这个回调函数不使用任何参数.

注意:

客户端的消息机制与服务器端的消息处理机制是完全一致的.因为socket.io确保客户端与服务器端共享相同的API.

运行后的结果:

node.js中使用socket.io的方法

当关闭浏览器是,就断开了与服务器的连接,此时服务器端触发disconnect事件,客户端断开连接.

Javascript 相关文章推荐
简单易用的倒计时js代码
Aug 04 Javascript
简述JavaScript中正则表达式的使用方法
Jun 15 Javascript
js+html5实现canvas绘制网页时钟的方法
May 21 Javascript
javascript日期比较方法实例分析
Jun 17 Javascript
基于js里调用函数时,函数名带括号和不带括号的区别
Jul 28 Javascript
vue template中slot-scope/scope的使用方法
Sep 06 Javascript
vue生命周期和react生命周期对比【推荐】
Sep 19 Javascript
15分钟深入了解JS继承分类、原理与用法
Jan 19 Javascript
vue2.0基于vue-cli+element-ui制作树形treeTable
Apr 30 Javascript
Vue函数式组件的应用实例详解
Aug 30 Javascript
vue实现前端分页完整代码
Jun 17 Javascript
微信小程序实现时间戳格式转换
Jul 20 Javascript
Lua表达式和控制结构学习笔记
Dec 15 #Javascript
如何在node的express中使用socket.io
Dec 15 #Javascript
node.js中使用socket.io制作命名空间
Dec 15 #Javascript
node.js中的fs.fstatSync方法使用说明
Dec 15 #Javascript
node.js中的fs.fstat方法使用说明
Dec 15 #Javascript
node.js中的fs.readFileSync方法使用说明
Dec 15 #Javascript
node.js中的fs.readFile方法使用说明
Dec 15 #Javascript
You might like
PHP编程中八种常见的文件操作方式
2006/11/19 PHP
PHP编程风格规范分享
2014/01/15 PHP
学习PHP session的传递方式
2016/06/15 PHP
来自国外的14个图片放大编辑的jQuery插件整理
2010/10/20 Javascript
12种不宜使用的Javascript语法整理
2013/11/04 Javascript
ie浏览器使用js导出网页到excel并打印
2014/03/11 Javascript
js日期范围初始化得到前一个月日期的方法
2015/05/05 Javascript
js实现时间显示几天前、几小时前或者几分钟前的方法集锦
2015/05/29 Javascript
完美解决浏览器跨域的几种方法(汇总)
2017/05/08 Javascript
AngularJS实现表单元素值绑定操作示例
2017/10/11 Javascript
微信小程序数据存储与取值详解
2018/01/30 Javascript
基于Vuejs的搜索匹配功能实现方法
2018/03/03 Javascript
vue弹窗组件的实现示例代码
2018/09/10 Javascript
vue项目中使用Hbuilder打包app 设置沉浸式状态栏的方法
2018/10/22 Javascript
NodeJS实现同步的方法
2019/03/02 NodeJs
Vue自定义全局Toast和Loading的实例详解
2019/04/18 Javascript
Vue路由之JWT身份认证的实现方法
2019/08/26 Javascript
jQuery 隐藏/显示效果函数用法实例分析
2020/05/20 jQuery
vue实现动态给id赋值,点击事件获取当前点击的元素的id操作
2020/11/09 Javascript
JavaScript实现复选框全选和取消全选
2020/11/20 Javascript
python 随机数生成的代码的详细分析
2011/05/15 Python
讲解Python中运算符使用时的优先级
2015/05/14 Python
Windows下Anaconda的安装和简单使用方法
2018/01/04 Python
python求平均数、方差、中位数的例子
2019/08/22 Python
Python字节单位转换(将字节转换为K M G T)
2021/03/02 Python
使用canvas对多图片拼合并导出图片的方法
2018/08/28 HTML / CSS
美国批发供应商:Kole Imports
2019/04/10 全球购物
PHP如何删除一个Cookie值
2012/11/15 面试题
Java方面的关于数组和继承的笔面试题
2015/09/18 面试题
科室工作个人总结的自我评价
2013/10/29 职场文书
中学生自我鉴定
2014/02/04 职场文书
群众路线教育实践活动心得体会
2014/03/07 职场文书
2014个人四风对照检查材料思想汇报
2014/09/18 职场文书
2014年反腐倡廉工作总结
2014/12/05 职场文书
业务员管理制度范本
2015/08/06 职场文书
2019奶茶店创业计划书范本!
2019/07/15 职场文书