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 相关文章推荐
Jquery ThickBox插件使用心得(不建议使用)
Sep 08 Javascript
stream.js 一个很小、完全独立的Javascript类库
Oct 28 Javascript
js单例模式详解实例
Nov 21 Javascript
JavaScript数值数组排序示例分享
May 27 Javascript
实例代码详解jquery.slides.js
Nov 16 Javascript
基于BootStrap Metronic开发框架经验小结【五】Bootstrap File Input文件上传插件的用法详解
May 12 Javascript
JavaScript实现输入框与清空按钮联动效果
Sep 09 Javascript
Nuxt.js实战详解
Jan 18 Javascript
使用validate.js实现表单数据提交前的验证方法
Sep 04 Javascript
jQuery轻量级表单模型验证插件
Oct 15 jQuery
解决vue+ element ui 表单验证有值但验证失败问题
Jan 16 Javascript
Vue中ref和$refs的介绍以及使用方法示例
Jan 11 Vue.js
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
PHP4实际应用经验篇(3)
2006/10/09 PHP
Http 1.1 Etag 与 Last-Modified提高php效率
2008/01/10 PHP
php 读取文件乱码问题
2010/02/20 PHP
一个好用的PHP验证码类实例分享
2013/12/27 PHP
PHP间隔一段时间执行代码的方法
2014/12/02 PHP
yii2 上传图片的示例代码
2018/11/02 PHP
PHPExcel实现的读取多工作表操作示例
2020/04/14 PHP
多浏览器兼容的获取元素和鼠标的位置的js代码
2009/12/15 Javascript
来自qq的javascript面试题
2010/07/24 Javascript
表格单元格交错着色实现思路及代码
2013/04/01 Javascript
图片翻转效果具体实现代码
2014/01/09 Javascript
JS去除iframe滚动条的方法
2015/04/01 Javascript
Require.JS中的几种define定义方式示例
2017/06/01 Javascript
使用原生js封装的ajax实例(兼容jsonp)
2017/10/12 Javascript
对VUE中的对象添加属性
2018/09/18 Javascript
解决Vue中引入swiper,在数据渲染的时候,发生不滑动的问题
2018/09/27 Javascript
深入理解JavaScript 箭头函数
2019/05/30 Javascript
解决vue的过渡动画无法正常实现问题
2019/10/31 Javascript
解决element-ui里的下拉多选框 el-select 时,默认值不可删除问题
2020/08/14 Javascript
vue3.0搭配.net core实现文件上传组件
2020/10/29 Javascript
[29:16]完美世界DOTA2联赛决赛日 Inki vs LBZS 第三场 11.08
2020/11/10 DOTA
下载给定网页上图片的方法
2014/02/18 Python
Python视频爬虫实现下载头条视频功能示例
2018/05/07 Python
用python处理MS Word的实例讲解
2018/05/08 Python
详解python3中tkinter知识点
2018/06/21 Python
Pytorch在dataloader类中设置shuffle的随机数种子方式
2020/01/14 Python
Python sqlalchemy时间戳及密码管理实现代码详解
2020/08/01 Python
Canvas环形饼图与手势控制的实现代码
2019/11/08 HTML / CSS
英国领先的在线高尔夫商店:Gamola Golf
2019/11/16 全球购物
高中毕业自我鉴定
2013/12/16 职场文书
电子技术专业中专生的自我评价
2013/12/17 职场文书
农业局学习党的群众路线教育实践活动心得体会
2014/03/07 职场文书
机电系毕业生求职信
2014/07/11 职场文书
公司员工活动策划方案
2014/08/20 职场文书
报表员工作失误检讨书范文
2014/09/19 职场文书
详解python字符串驻留技术
2021/05/21 Python