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 相关文章推荐
JavaScript语法着色引擎(demo及打包文件下载)
Jun 13 Javascript
JQuery this 和 $(this) 的区别
Aug 23 Javascript
JS和jquery获取各种屏幕的宽度和高度的代码
Aug 02 Javascript
JS清空多文本框、文本域示例代码
Feb 24 Javascript
DOM 高级编程
May 06 Javascript
详细分析JavaScript变量类型
Jul 08 Javascript
纯JS代码实现一键分享功能
Apr 20 Javascript
JS中判断字符串中出现次数最多的字符及出现的次数的简单实例
Jun 03 Javascript
js封装成插件的步骤方法
Sep 11 Javascript
VUE 3D轮播图封装实现方法
Jul 03 Javascript
JavaScript数据结构与算法之二叉树实现查找最小值、最大值、给定值算法示例
Mar 01 Javascript
JavaScript实现外溢动态爱心的效果的示例代码
Mar 21 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
session在PHP大型web应用中的使用
2011/06/25 PHP
PHP函数分享之curl方式取得数据、模拟登陆、POST数据
2014/06/04 PHP
PHP实现驼峰样式字符串(首字母大写)转换成下划线样式字符串的方法示例
2017/08/10 PHP
浅谈PHPANALYSIS提取关键字
2019/03/08 PHP
Thinkphp 3.2框架使用Redis的方法详解
2019/10/24 PHP
js 禁用浏览器的后退功能的简单方法
2008/12/10 Javascript
javascript 页面划词搜索JS
2009/09/28 Javascript
javascript中获取下个月一号,是星期几
2012/06/01 Javascript
把jquery 的dialog和ztree结合实现步骤
2013/08/02 Javascript
JavaScript判断变量是否为undefined的两种写法区别
2013/12/04 Javascript
JS实现仿京东淘宝竖排二级导航
2014/12/08 Javascript
基于Bootstrap实现图片轮播效果
2016/05/22 Javascript
ionic实现下拉刷新载入数据功能
2017/05/11 Javascript
使用Vue写一个datepicker的示例
2018/01/27 Javascript
微信小程序通过js实现瀑布流布局详解
2019/08/28 Javascript
Python __setattr__、 __getattr__、 __delattr__、__call__用法示例
2015/03/06 Python
python的pip安装以及使用教程
2018/09/18 Python
Python实现根据日期获取当天凌晨时间戳的方法示例
2019/04/09 Python
Django模型修改及数据迁移实现解析
2019/08/01 Python
python用quad、dblquad实现一维二维积分的实例详解
2019/11/20 Python
python pygame实现球球大作战
2019/11/25 Python
如何在scrapy中捕获并处理各种异常
2020/09/28 Python
python实现学生信息管理系统源码
2021/02/22 Python
浅析HTML5中的download属性使用
2019/03/13 HTML / CSS
美国网上花店:JustFlowers
2017/02/12 全球购物
澳洲健康食品网上商店:Aussie Health Products
2018/06/15 全球购物
大学生毕业求职简历的自我评价
2013/10/24 职场文书
生产部经理岗位职责
2013/12/16 职场文书
银行服务感言
2014/03/01 职场文书
推荐信格式范文
2014/05/09 职场文书
完整版商业计划书
2014/09/15 职场文书
2014年教师个人工作总结
2014/11/10 职场文书
逃课检讨书怎么写
2015/01/01 职场文书
工作证明格式范文
2015/06/15 职场文书
2015年高中生国庆节演讲稿
2015/07/30 职场文书
Pyhton模块和包相关知识总结
2021/05/12 Python