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 相关文章推荐
关于Ext中form移除textfield方法:hide(),setVisible(false),remove()
Dec 02 Javascript
JS在TextArea光标位置插入文字并实现移动光标到文字末尾
Jun 21 Javascript
nodeType属性返回被选节点的节点类型介绍
Nov 22 Javascript
JavaScript cookie的设置获取删除详解
Feb 11 Javascript
一个简单的jquery的多选下拉框(自写)
May 05 Javascript
javascript将url中的参数加密解密代码
Nov 17 Javascript
jquery实现的简单二级菜单效果代码
Sep 22 Javascript
javaScript中的空值和假值
Dec 18 Javascript
浅析vue中常见循环遍历指令的使用 v-for
Apr 18 Javascript
vue 权限认证token的实现方法
Jul 17 Javascript
在Vue中使用antv的示例代码
Jun 29 Javascript
基于Vue2实现移动端图片上传、压缩、拖拽排序、拖拽删除功能
Jan 05 Vue.js
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
2006/10/09 PHP
深入浅析php中sprintf与printf函数的用法及区别
2016/01/08 PHP
Thinkphp5 微信公众号token验证不成功的原因及解决方法
2017/11/12 PHP
PHP单例模式应用示例【多次连接数据库只实例化一次】
2018/12/18 PHP
数据结构之利用PHP实现二分搜索树
2020/10/25 PHP
Javascript 读书笔记索引贴
2010/01/11 Javascript
防止按钮在短时间内被多次点击的方法
2014/03/10 Javascript
兼容主流浏览器的JS复制内容到剪贴板
2014/12/12 Javascript
jQuery中get()方法用法实例
2014/12/27 Javascript
浅谈javascript 函数内部属性
2015/01/21 Javascript
javascript实现十秒钟后注册按钮可点击的方法
2015/05/13 Javascript
JavaScript实现同一页面内两个表单互相传值的方法
2015/08/12 Javascript
Ajax使用原生态JS验证用户名是否存在
2020/05/26 Javascript
JS填写银行卡号每隔4位数字加一个空格
2016/12/19 Javascript
nodejs入门教程二:创建一个简单应用示例
2017/04/24 NodeJs
Angular.JS内置服务$http对数据库的增删改使用教程
2017/05/07 Javascript
BootStrap daterangepicker 双日历控件
2017/06/02 Javascript
JavaScript你不知道的一些数组方法
2017/08/18 Javascript
jQuery实现的鼠标滚轮控制图片缩放功能实例
2017/10/14 jQuery
axios全局注册,设置token,以及全局设置url请求网段的方法
2018/09/25 Javascript
Vue中 axios delete请求参数操作
2020/08/25 Javascript
在Ubuntu系统下安装使用Python的GUI工具wxPython
2016/02/18 Python
python使用正则表达式的search()函数实现指定位置搜索功能
2017/11/10 Python
Django 使用logging打印日志的实例
2018/04/28 Python
Python 字符串换行的多种方式
2018/09/06 Python
在python下使用tensorflow判断是否存在文件夹的实例
2019/06/10 Python
在PyTorch中使用标签平滑正则化的问题
2020/04/03 Python
如何在scrapy中集成selenium爬取网页的方法
2020/11/18 Python
matplotlib bar()实现多组数据并列柱状图通用简便创建方法
2021/02/24 Python
CSS3颜色值RGBA与渐变色使用介绍
2020/03/06 HTML / CSS
CSS3中animation实现流光按钮效果
2020/12/21 HTML / CSS
试用期自我鉴定范文
2014/03/20 职场文书
比赛口号大全
2014/06/10 职场文书
协会周年庆活动方案
2014/08/26 职场文书
甲午大海战观后感
2015/06/02 职场文书
班主任远程培训研修日志
2015/11/13 职场文书