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 arguments.callee的应用代码
May 07 Javascript
jQuery AnythingSlider滑动效果插件
Feb 07 Javascript
jquery操作select option 的代码小结
Jun 21 Javascript
5个JavaScript经典面试题
Oct 13 Javascript
jQuery实现多级下拉菜单jDropMenu的方法
Aug 28 Javascript
js实现tab切换效果实例
Sep 16 Javascript
极易被忽视的javascript面试题七问七答
Feb 15 Javascript
JavaScript弹窗基础篇
Apr 27 Javascript
javascript经典特效分享 手风琴、轮播图、图片滑动
Sep 14 Javascript
Bootstrap Table使用整理(一)
Jun 09 Javascript
JS实现的贪吃蛇游戏完整实例
Jan 18 Javascript
Vue组件实现触底判断
Jun 26 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 CURL用法的深入分析
2013/06/09 PHP
php强制文件下载而非在浏览器打开的自定义函数分享
2014/05/08 PHP
php画图实例
2014/11/05 PHP
php可应用于面包屑导航的迭代寻找家谱树实现方法
2015/02/02 PHP
PHP中addcslashes与stripcslashes函数用法分析
2016/01/07 PHP
laravel框架模型中非静态方法也能静态调用的原理分析
2019/11/23 PHP
js汉字转拼音实现代码
2013/02/06 Javascript
js的Prototype属性解释及常用方法
2014/05/08 Javascript
Jquery使用小技巧汇总
2015/12/29 Javascript
nodejs加密Crypto的实例代码
2016/07/07 NodeJs
BootStrap tooltip提示框使用小结
2016/10/26 Javascript
JS绘制微信小程序画布时钟
2016/12/24 Javascript
angularJs的ng-class切换class
2017/06/23 Javascript
React优化子组件render的使用
2019/05/12 Javascript
Vue2.X和Vue3.0数据响应原理变化的区别
2019/11/07 Javascript
vue瀑布流组件实现上拉加载更多
2020/03/10 Javascript
Javascript执行上下文顺序的深入讲解
2020/11/04 Javascript
使用Typescript开发微信小程序的步骤详解
2021/01/12 Javascript
win7安装python生成随机数代码分享
2013/12/27 Python
Python获取网页上图片下载地址的方法
2015/03/11 Python
python实现的守护进程(Daemon)用法实例
2015/06/02 Python
Python实现计算文件MD5和SHA1的方法示例
2019/06/11 Python
Django通用类视图实现忘记密码重置密码功能示例
2019/12/17 Python
浅谈keras中的Merge层(实现层的相加、相减、相乘实例)
2020/05/23 Python
python安装sklearn模块的方法详解
2020/11/28 Python
美国婴童服装市场上的领先品牌:Carter’s
2018/02/08 全球购物
Quiksilver荷兰官方网站:冲浪和滑雪板
2019/11/16 全球购物
字符串str除首尾字符外的其他字符按升序排列
2013/03/08 面试题
一些Solaris面试题
2015/12/22 面试题
设计4个线程,其中两个线程每次对j增加1,另外两个线程对j每次减少1。写出程序。
2014/12/30 面试题
2015年网络管理员工作总结
2015/05/21 职场文书
酒桌上的开场白
2015/06/01 职场文书
PHP连接MSSQL数据库案例,PHPWAMP多个PHP版本连接SQL Server数据库
2021/04/16 PHP
解决Python中的modf()函数取小数部分不准确问题
2021/05/28 Python
webpack的移动端适配方案小结
2021/07/25 Javascript
Nginx隐藏式跳转(浏览器URL跳转后保持不变)
2022/04/07 Servers