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 相关文章推荐
提高网站信任度的技巧
Oct 17 Javascript
Ajax 数据请求的简单分析
Apr 05 Javascript
JQuery操作表格(隔行着色,高亮显示,筛选数据)
Feb 23 Javascript
JavaScript中使用构造器创建对象无需new的情况说明
Mar 01 Javascript
用javascript为页面添加天气显示实现思路及代码
Dec 02 Javascript
jquery实现的3D旋转木马特效代码分享
Aug 25 Javascript
jQuery实现的Tab滑动选项卡及图片切换(多种效果)小结
Sep 14 Javascript
JS实现放大、缩小及拖拽图片的方法【可兼容IE、火狐】
Aug 23 Javascript
Bootstrap基本样式学习笔记之表单(3)
Dec 07 Javascript
ionic2自定义cordova插件开发以及使用(Android)
Jun 19 Javascript
Angular.js初始化之ng-app的自动绑定与手动绑定详解
Jul 31 Javascript
详解Vue-axios 设置请求头问题
Dec 06 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
短波的认识
2021/03/01 无线电
dedecms模板标签代码官方参考
2007/03/17 PHP
PHP strstr 函数判断字符串是否否存在的实例代码
2013/09/28 PHP
thinkphp利用模型通用数据编辑添加和删除的实例代码
2016/11/20 PHP
PHP的垃圾回收机制代码实例讲解
2021/02/27 PHP
PHP加MySQL消息队列深入理解
2021/02/27 PHP
html组件不可输入(只读)同时任何组件都有效
2013/04/01 Javascript
jQuery学习笔记之总体架构
2014/06/03 Javascript
Windows8下搭建Node.js开发环境教程
2014/09/03 Javascript
微信小程序 swiper组件构建轮播图的实例
2017/09/20 Javascript
详解node.js 下载图片的 2 种方式
2018/03/02 Javascript
vue-router中的hash和history两种模式的区别
2018/07/17 Javascript
深入理解使用Vue实现Context-Menu的思考与总结
2019/03/09 Javascript
Vue3.0数据响应式原理详解
2019/10/09 Javascript
使用Vue调取接口,并渲染数据的示例代码
2019/10/28 Javascript
JS实现贪吃蛇游戏
2019/11/15 Javascript
vue实现移动端图片上传功能
2019/12/23 Javascript
vuejs实现下拉框菜单选择
2020/10/23 Javascript
python处理csv数据的方法
2015/03/11 Python
20招让你的Python飞起来!
2016/09/27 Python
聊聊Python中的pypy
2018/01/12 Python
Django中使用CORS实现跨域请求过程解析
2019/08/05 Python
python爬虫 urllib模块url编码处理详解
2019/08/20 Python
PIL包中Image模块的convert()函数的具体使用
2020/02/26 Python
Python实现屏幕录制功能的代码
2020/03/02 Python
关于Python字符串显示u...的解决方式
2020/03/06 Python
python实现四人制扑克牌游戏
2020/04/22 Python
Python sqlalchemy时间戳及密码管理实现代码详解
2020/08/01 Python
用python绘制樱花树
2020/10/09 Python
如何在windows下安装配置python工具Ulipad
2020/10/27 Python
详解canvas绘制网络字体几种方法
2019/08/27 HTML / CSS
英国文具、办公用品和科技商店:Ryman
2018/09/27 全球购物
《夕阳真美》教学反思
2014/04/27 职场文书
《我爱祖国》演讲稿1000字
2014/09/26 职场文书
追悼会答谢词范文
2015/09/29 职场文书
VUE递归树形实现多级列表
2022/07/15 Vue.js