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 相关文章推荐
js loading加载效果实现代码
Nov 24 Javascript
JavaScript异步加载浅析
Dec 28 Javascript
ECMAScript6函数剩余参数(Rest Parameters)
Jun 12 Javascript
JavaScript 对象深入学习总结(经典)
Sep 29 Javascript
js实现简单计算器
Nov 22 Javascript
原生js仿淘宝网商品放大镜效果
Feb 28 Javascript
基于JQuery和原生JavaScript实现网页定位导航特效
Apr 03 jQuery
JavaScript实现自动跳转文本功能
May 25 Javascript
解决Vue打包之后文件路径出错的问题
Mar 06 Javascript
vue中动态设置meta标签和title标签的方法
Jul 11 Javascript
微信小程序位置授权处理方法
Jun 13 Javascript
微信小程序基础教程之echart的使用
Jun 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
js下函数般调用正则的方法附代码
2008/06/22 PHP
Laravel5.5 数据库迁移:创建表与修改表示例
2019/10/23 PHP
删除select中所有option选项jquery代码
2013/08/12 Javascript
Event altKey,ctrlKey,shiftKey属性解析
2013/12/18 Javascript
IE中的File域无法清空使用jQuery重设File域
2014/04/24 Javascript
JavaScript基础教程之alert弹出提示框实例
2014/10/16 Javascript
JavaScript设计模式之装饰者模式介绍
2014/12/28 Javascript
原生js结合html5制作简易的双色子游戏
2015/03/30 Javascript
javascript实现超炫的向上滑行菜单实例
2015/08/03 Javascript
谈谈Jquery中的children find 的区别有哪些
2015/10/19 Javascript
小巧强大的jquery layer弹窗弹层插件
2015/12/06 Javascript
jQuery ajax请求返回list数据动态生成input标签,并把list数据赋值到input标签
2016/03/29 Javascript
Jqprint实现页面打印
2017/01/06 Javascript
一种angular的方法级的缓存注解(装饰器)
2018/03/13 Javascript
nodejs通过钉钉群机器人推送消息的实现代码
2019/05/05 NodeJs
JavaScript交换变量常用4种方法解析
2020/09/02 Javascript
[01:02:53]DOTA2上海特级锦标赛主赛事日 - 5 总决赛Liquid VS Secret第二局
2016/03/06 DOTA
[47:45]DOTA2-DPC中国联赛 正赛 Phoenix vs Dragon BO3 第一场 2月26日
2021/03/11 DOTA
python实现划词翻译
2020/04/23 Python
python文件和目录操作方法大全(含实例)
2014/03/12 Python
深入浅析Python字符编码
2015/11/12 Python
Python实现购物评论文本情感分析操作【基于中文文本挖掘库snownlp】
2018/08/07 Python
Python解压 rar、zip、tar文件的方法
2019/11/19 Python
python turtle 绘制太极图的实例
2019/12/18 Python
基于django micro搭建网站实现加水印功能
2020/05/22 Python
如何解决cmd运行python提示不是内部命令
2020/07/01 Python
vscode配置anaconda3的方法步骤
2020/08/08 Python
python如何用matplotlib创建三维图表
2021/01/26 Python
香港最新科技与优质家居产品购物网站:J SELECT
2018/08/21 全球购物
报到证丢失证明
2014/01/11 职场文书
个人自我评价范文
2014/02/05 职场文书
幼儿园中秋节活动反思
2014/02/16 职场文书
高三家长寄语
2014/04/03 职场文书
群众路线教育实践活动整改落实情况汇报
2014/10/28 职场文书
雷峰塔导游词
2015/02/09 职场文书
财产分割协议书
2016/03/22 职场文书