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 数据类型转换总结笔记
Jan 17 Javascript
js实现的点击div区域外隐藏div区域
Jun 30 Javascript
jQuery匹配文档链接并添加class的方法
Jun 26 Javascript
jquery实现的V字形显示效果代码
Oct 27 Javascript
多个js毫秒倒计时同时进行效果
Jan 05 Javascript
js中数组结合字符串实现查找(屏蔽广告判断url等)
Mar 30 Javascript
AngularJS入门教程之AngularJS指令
Apr 18 Javascript
浅谈js for循环输出i为同一值的问题
Mar 01 Javascript
vue.js实现备忘录功能的方法
Jul 10 Javascript
bootstrap模态框嵌套、tabindex属性、去除阴影的示例代码
Oct 17 Javascript
Vue 按键修饰符处理事件的方法
May 04 Javascript
vue elementui tree 任意级别拖拽功能代码
Aug 31 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上传图片、删除图片实现代码
2010/05/12 PHP
发一个php简单的伪原创程序,配合商城采集用的
2010/10/12 PHP
APACHE的AcceptPathInfo指令使用介绍
2013/01/18 PHP
Laravel 5 框架入门(四)完结篇
2015/04/09 PHP
php遍历类中包含的所有元素的方法
2015/05/12 PHP
php猴子选大王问题解决方法
2015/05/12 PHP
thinkphp命名空间用法实例详解
2015/12/30 PHP
thinkPHP5框架自定义验证器实现方法分析
2018/06/11 PHP
使用Git实现Laravel项目的自动化部署
2019/11/24 PHP
javascript放大镜效果的简单实现
2013/12/09 Javascript
javascript生成json数据简单示例分享
2014/02/14 Javascript
node.js中的fs.linkSync方法使用说明
2014/12/15 Javascript
jQuery+ajax+asp.net获取Json值的方法
2016/06/08 Javascript
基于JavaScript实现树形下拉框
2016/08/10 Javascript
Angular.js中$apply()和$digest()的深入理解
2016/10/13 Javascript
jQuery ajax读取本地json文件的实例
2017/10/31 jQuery
IE11下CKEditor在Bootstrap Modal中下拉问题的解决
2019/09/25 Javascript
python3.4用循环往mysql5.7中写数据并输出的实现方法
2017/06/20 Python
关于反爬虫的一些简单总结
2017/12/13 Python
python实现随机森林random forest的原理及方法
2017/12/21 Python
Python中那些 Pythonic的写法详解
2019/07/02 Python
Python+OpenCv制作证件图片生成器的操作方法
2019/08/21 Python
Python爬虫实现“盗取”微信好友信息的方法分析
2019/09/16 Python
Python的in,is和id函数代码实例
2020/04/18 Python
Python使用socketServer包搭建简易服务器过程详解
2020/06/12 Python
Python 使用SFTP和FTP实现对服务器的文件下载功能
2020/12/17 Python
纯CSS3实现滚动的齿轮动画效果
2014/06/05 HTML / CSS
html5小程序飞入购物车(抛物线绘制运动轨迹点)
2020/10/19 HTML / CSS
苏格兰领先的多渠道鞋店:Begg Shoes
2019/10/22 全球购物
销售业务实习自我鉴定
2013/09/23 职场文书
营销总经理的岗位职责
2013/12/15 职场文书
户籍证明的格式
2014/01/13 职场文书
面试后感谢信
2014/02/01 职场文书
企业法人代表证明书
2015/06/18 职场文书
导游词之长城八达岭
2019/09/24 职场文书
Android超详细讲解组件ScrollView的使用
2022/03/31 Java/Android