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 中关于CSS操作部分使用说明
Jun 10 Javascript
dreamweaver 安装Jquery智能提示
Apr 02 Javascript
探讨javascript是不是面向对象的语言
Nov 21 Javascript
jquery使用ul模拟select实现表单美化的方法
Aug 18 Javascript
Node.js如何自动审核团队的代码
Jul 20 Javascript
js获取腾讯视频ID的方法
Oct 03 Javascript
详谈$.data()的用法和作用
Feb 13 Javascript
基于bootstrap实现bootstrap中文网巨幕效果
May 02 Javascript
JS获取并处理php数组的方法实例分析
Sep 04 Javascript
vue-cli3跨域配置的简单方法
Sep 06 Javascript
Nautil 中使用双向数据绑定的实现
Oct 02 Javascript
jQuery实现聊天对话框
Feb 08 jQuery
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/07/17 PHP
php定时删除文件夹下文件(清理缓存文件)
2013/01/23 PHP
使用PHP计算两个路径的相对路径
2013/06/14 PHP
PHP实例分享判断客户端是否使用代理服务器及其匿名级别
2014/06/04 PHP
ThinkPHP实现二级循环读取的方法
2014/11/03 PHP
详谈PHP编码转换问题
2015/07/28 PHP
对比分析php中Cookie与Session的异同
2016/02/19 PHP
Kindeditor编辑器添加图片上传水印功能(php代码)
2017/08/03 PHP
JS 参数传递的实际应用代码分析
2009/09/13 Javascript
xml转json的js代码
2012/08/28 Javascript
js 金额格式化来回转换示例
2014/02/23 Javascript
node.js中的http.response.end方法使用说明
2014/12/14 Javascript
关于获取DIV内部内容报错的原因分析及解决办法
2016/01/29 Javascript
仿百度换肤功能的简单实例代码
2016/07/11 Javascript
Angular 2 利用Router事件和Title实现动态页面标题的方法
2017/08/23 Javascript
JS获取字符对应的ASCII码实例
2017/09/10 Javascript
vue-cli如何引入bootstrap工具的方法
2017/10/19 Javascript
vue 1.x 交互实现仿百度下拉列表示例
2017/10/21 Javascript
JavaScript内存泄漏的处理方式
2017/11/20 Javascript
9种方法优化jQuery代码详解
2020/02/04 jQuery
vue Cli 环境删除与重装教程 - 版本文档
2020/09/11 Javascript
JavaScript 防盗链的原理以及破解方法
2020/12/29 Javascript
基于python 字符编码的理解
2017/09/02 Python
PyCharm的设置方法和第一个Python程序的建立
2019/01/16 Python
Python操作配置文件ini的三种方法讲解
2019/02/22 Python
Python Flask异步发送邮件实现方法解析
2020/08/01 Python
Emporio Armani腕表天猫官方旗舰店:乔治·阿玛尼为年轻人设计的副线品牌
2017/07/02 全球购物
Expedia印度尼西亚站:预订酒店、廉价航班和度假套餐
2018/01/31 全球购物
凯撒娱乐:Caesars Entertainment
2018/02/23 全球购物
荷兰手表网站:Watch2Day
2018/07/02 全球购物
2019年分享net面试的经历和题目
2016/08/07 面试题
纠纷协议书
2014/04/16 职场文书
列车乘务员工作不细心检讨书
2014/10/07 职场文书
2015年小学开学寄语
2015/02/27 职场文书
关于公司年会的开幕词
2016/03/04 职场文书
javascript代码简写的几种常用方式汇总
2021/08/23 Javascript