如何在node的express中使用socket.io


Posted in Javascript onDecember 15, 2014

服务器端server.js代码

 var express=require("express");

 var http=require("http");

 var sio=require("socket.io");

 var app=express();

 var server=http.createServer(app);

 var fs=require("fs");

 app.get("/", function (req,res) {

    res.sendfile(__dirname+"/index.html");

 });

 server.listen(1337);

 var socket=sio.listen(server);

 socket.on("connection", function (socket) {

     socket.emit("news",{hello:"你好"});

     socket.on("otherEvent", function (data) {

         console.log("服务器端接受到数据:%j",data);

     })

 });

客户端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("news", function (data) {

             console.log(data.hello);

             socket.emit("otherEvent",{my:"data"});

         });

     </script>

 </head>

 <body>

 </body>

 </html>

忽然想到一个问题.我可不可以把news的监听代码写到和emit的同一端.

这样:

 var express=require("express");

 var http=require("http");

 var sio=require("socket.io");

 var app=express();

 var server=http.createServer(app);

 app.get("/", function (req,res) {

     res.sendfile(__dirname+"/index.html");

 });

 server.listen(1337,"127.0.0.1", function () {

     console.log("开始监听1337");

 });

 var socket=sio.listen(server);

 socket.on("connection", function (socket) {

     socket.on("news", function (data) {

     console.log(data.hello);

     });

     socket.emit("news",{hello:"你好"});

 });

注意15~17行代码:是我们新添加的.

事实证明不可以,不会有任何的打印.但是也是不会报错的.

emit的执行,美其名曰:发送事件.如果有参数,美其名曰:携带参数.

后记:

在网上也找到不少关于Express框架中的session调用方法,可是发现真正能用的不是很多,本文是根据自己项目的制作过程,整理的Express和socket.IO中使用session的具体方法。

Javascript 相关文章推荐
cookie中的path与domain属性详解
Dec 18 Javascript
JavaScript利用正则表达式去除日期中的“-”
Jul 01 Javascript
jQuery焦点图切换特效代码分享
Sep 15 Javascript
JavaScript原生xmlHttp与jquery的ajax方法json数据格式实例
Dec 04 Javascript
JS+CSS实现DIV层的展开、收缩效果
Jan 28 Javascript
jQuery基于json与cookie实现购物车的方法
Apr 15 Javascript
Bootstrap CSS布局之表单
Dec 17 Javascript
使用jQuery实现两个div中按钮互换位置的实例代码
Sep 21 jQuery
fetch 如何实现请求数据
Dec 20 Javascript
JavaScript数据结构之栈实例用法
Jan 18 Javascript
angular 服务随记小结
May 06 Javascript
小程序登录/注册页面设计的实现代码
May 24 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
node.js中的fs.linkSync方法使用说明
Dec 15 #Javascript
node.js中的socket.io的广播消息
Dec 15 #Javascript
You might like
PHP XML操作的各种方法解析(比较详细)
2010/06/17 PHP
php实现斐波那契数列的简单写法
2014/07/19 PHP
php字符集转换
2017/01/23 PHP
laravel中命名路由的使用方法
2017/02/24 PHP
php写入txt乱码的解决方法
2019/09/17 PHP
用javascript实现在小方框中浏览大图的代码
2007/08/14 Javascript
Microsoft Ajax Minifier 压缩javascript的方法
2010/03/05 Javascript
javascript动画浅析
2012/08/30 Javascript
原生js实现半透明遮罩层效果具体代码
2013/06/06 Javascript
简单实用的全选反选按钮例子
2013/10/18 Javascript
深入解析AngularJS框架中$scope的作用与生命周期
2016/03/05 Javascript
js实现ctrl+v粘贴上传图片(兼容chrome、firefox、ie11)
2016/03/09 Javascript
JSONP跨域请求实例详解
2016/07/04 Javascript
JS实现页面载入时随机显示图片效果
2016/09/07 Javascript
vue2里面ref的具体使用方法
2017/10/27 Javascript
angularJS自定义directive之带参方法传递详解
2018/10/09 Javascript
详解一个基于react+webpack的多页面应用配置
2019/01/21 Javascript
JS实现简单的抽奖转盘效果示例
2019/02/16 Javascript
angular2 NgModel模块的具体使用方法
2019/04/10 Javascript
vue el-tree 默认展开第一个节点的实现代码
2020/05/15 Javascript
js实现炫酷光感效果
2020/09/05 Javascript
vue项目打包后请求地址错误/打包后跨域操作
2020/11/04 Javascript
python通过scapy获取局域网所有主机mac地址示例
2014/05/04 Python
python使用sessions模拟登录淘宝的方式
2019/08/16 Python
Python print不能立即打印的解决方式
2020/02/19 Python
Python实现数字的格式化输出
2020/08/01 Python
python中time包实例详解
2021/02/02 Python
芬兰汽车配件商店:Autonvaraosat24
2017/01/30 全球购物
维多利亚的秘密官方旗舰店:VICTORIA’S SECRET
2018/04/02 全球购物
公司总经理岗位职责
2014/03/15 职场文书
师德演讲稿范文
2014/05/06 职场文书
大学生应聘求职信
2014/05/26 职场文书
团队精神口号
2014/06/06 职场文书
工人先锋号申报材料
2014/12/29 职场文书
HTML5中 rem适配方案与 viewport 适配问题详解
2021/04/27 HTML / CSS
详解MySQL数据库千万级数据查询和存储
2021/05/18 MySQL