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 相关文章推荐
window.open打开页面居中显示的示例代码
Dec 27 Javascript
jQuery Ajax调用WCF服务详细教程
Mar 31 Javascript
详细解读AngularJS中的表单验证编程
Jun 19 Javascript
探析浏览器执行JavaScript脚本加载与代码执行顺序
Jan 12 Javascript
通过Tabs方法基于easyUI+bootstrap制作工作站
Mar 28 Javascript
JavaScript里 ==与===区别详解
Aug 16 Javascript
原生JS实现-星级评分系统的简单实例
Aug 21 Javascript
COM组件中调用JavaScript函数详解及实例
Feb 23 Javascript
angular指令笔记ng-options的使用方法
Sep 18 Javascript
mui上拉加载更多下拉刷新数据的封装过程
Nov 03 Javascript
VueJs 搭建Axios接口请求工具
Nov 20 Javascript
javascript实现滚动条效果
Mar 24 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堆排序实现原理与应用方法
2015/01/03 PHP
php生成图片验证码-附五种验证码
2015/08/19 PHP
两种php去除二维数组的重复项方法
2015/11/04 PHP
php查询及多条件查询
2017/02/26 PHP
jQuery仿Excel表格编辑功能的实现代码
2013/05/01 Javascript
最好用的省市二级联动 原生js实现你值得拥有
2013/09/22 Javascript
Javascript原型链和原型的一个误区
2014/10/22 Javascript
jquery中ajax处理跨域的三大方式
2016/01/05 Javascript
Node.js本地文件操作之文件拷贝与目录遍历的方法
2016/02/16 Javascript
Javascript 数组去重的方法(四种)详解及实例代码
2016/11/24 Javascript
Angularjs自定义指令Directive详解
2017/05/27 Javascript
详解微信小程序设置底部导航栏目方法
2017/06/29 Javascript
vue项目webpack中Npm传递参数配置不同域名接口
2018/06/15 Javascript
基于iview的router常用控制方式
2019/05/30 Javascript
浅谈TypeScript的类型保护机制
2020/02/23 Javascript
Vue 使用typescript如何优雅的调用swagger API
2020/09/01 Javascript
PyQt5 QListWidget选择多项并返回的实例
2019/06/17 Python
Python异常处理例题整理
2019/07/07 Python
Python tkinter实现图片标注功能(完整代码)
2019/12/08 Python
opencv+python实现均值滤波
2020/02/19 Python
基于IE10/HTML5 开发
2013/04/22 HTML / CSS
Skyscanner波兰:廉价航班
2017/11/07 全球购物
DJI大疆德国官方商城:大疆无人机
2018/09/01 全球购物
意大利消费电子产品购物网站:SLG Store
2019/12/26 全球购物
北承题目(C++)
2012/05/16 面试题
介绍下Lucene建立索引的过程
2016/03/02 面试题
专家推荐信模板
2014/05/09 职场文书
团结就是力量演讲稿
2014/05/21 职场文书
三月雷锋月活动总结
2014/07/03 职场文书
管理工程专业求职信
2014/08/10 职场文书
银行领导班子四风对照检查材料
2014/09/27 职场文书
护士求职简历自我评价
2015/03/10 职场文书
2015年八一建军节活动总结
2015/03/20 职场文书
2015年建筑工程工作总结
2015/05/13 职场文书
《秦兵马俑》教学反思
2016/02/24 职场文书
Python可视化学习之matplotlib内置单颜色
2022/02/24 Python