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 相关文章推荐
获取任意Html元素与body之间的偏移距离 offsetTop、offsetLeft (For:IE5+ FF1 )[
Dec 22 Javascript
fancybox1.3.1 基于Jquery的插件在IE中图片显示问题
Oct 01 Javascript
javascript 学习笔记(onchange等)
Nov 14 Javascript
如何确保JavaScript的执行顺序 之jQuery.html深度分析
Mar 03 Javascript
JQuery插件开发示例代码
Nov 06 Javascript
浅谈JSON和JSONP区别及jQuery的ajax jsonp的使用
Nov 23 Javascript
在JavaScript中用getMinutes()方法返回指定的分时刻
Jun 10 Javascript
jQuery实现的五子棋游戏实例
Jun 13 Javascript
基于jQuey实现鼠标滑过变色(整行变色)
Dec 07 Javascript
JS正则表达式比较常见用法
Jan 26 Javascript
vue实现前端分页完整代码
Jun 17 Javascript
vue实现路由懒加载的3种方法示例
Sep 01 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 字符过滤类,用于过滤各类用户输入的数据
2009/05/27 PHP
php和jquery实现地图区域数据统计展示数据示例
2014/02/12 PHP
php实现将上传word文件转为html的方法
2015/06/03 PHP
仿中关村在线首页弹出式广告插件(jQuery版)
2012/05/03 Javascript
前后台交互过程中json格式如何解析以及如何生成
2012/12/26 Javascript
window.open的页面如何刷新(父页面)上层页面
2012/12/28 Javascript
jQuery实现点击文本框弹出热门标签的提示效果
2013/11/17 Javascript
javascript实现图片自动和可控的轮播切换特效
2015/04/13 Javascript
JS+CSS实现精美的二级导航效果代码
2015/09/17 Javascript
js实现内容显示并使用json传输数据
2016/03/16 Javascript
JS IOS/iPhone的Safari浏览器不兼容Javascript中的Date()问题如何解决
2016/11/11 Javascript
Web制作验证码功能实例代码
2017/06/19 Javascript
Angular实现类似博客评论的递归显示及获取回复评论的数据
2017/11/06 Javascript
取消Bootstrap的dropdown-menu点击默认关闭事件方法
2018/08/10 Javascript
详解js中Array的方法及技巧
2018/09/12 Javascript
微信小程序学习笔记之登录API与获取用户信息操作图文详解
2019/03/29 Javascript
python3实现短网址和数字相互转换的方法
2015/04/28 Python
Python批量重命名同一文件夹下文件的方法
2015/05/25 Python
python实现发送和获取手机短信验证码
2016/01/15 Python
django轻松使用富文本编辑器CKEditor的方法
2017/03/30 Python
python中如何使用正则表达式的集合字符示例
2017/10/09 Python
使用python实现BLAST
2018/02/12 Python
在cmder下安装ipython以及环境的搭建
2018/10/19 Python
详解字符串在Python内部是如何省内存的
2020/02/03 Python
python turtle工具绘制四叶草的实例分享
2020/02/14 Python
详解利用python识别图片中的条码(pyzbar)及条码图片矫正和增强
2020/11/17 Python
Betsey Johnson官网:妖娆可爱的连衣裙及鞋子、手袋和配件
2016/12/30 全球购物
美国宠物用品网站:Value Pet Supplies
2018/03/17 全球购物
个人充满哲理的自我评价
2014/02/20 职场文书
电大毕业个人生自我鉴定
2014/03/26 职场文书
机关党建工作汇报材料
2014/08/20 职场文书
上班迟到检讨书范文300字
2014/11/02 职场文书
停电通知范文
2015/04/16 职场文书
治庸问责工作总结
2015/08/11 职场文书
2016年10月份红领巾广播稿
2015/12/21 职场文书
《神奇的鸟岛》教学反思
2016/02/22 职场文书