如何在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 相关文章推荐
繁简字转换功能
Jul 19 Javascript
JavaScript入门教程(9) Document文档对象
Jan 31 Javascript
javascript 常用代码技巧大收集
Feb 25 Javascript
一个简单的Ext.XTemplate的实例代码
Mar 18 Javascript
jQuery检测输入的字符串包含的中英文的数量
Apr 17 Javascript
基于JavaScript实现手机短信按钮倒计时(超简单)
Dec 30 Javascript
完全深入学习Bootstrap表单
Nov 28 Javascript
jquery实现提示语淡入效果
May 05 jQuery
js 实现watch监听数据变化的代码
Oct 13 Javascript
vue图片上传组件使用详解
Dec 23 Javascript
javascript实现留言板功能
Feb 08 Javascript
vue中封装axios并实现api接口的统一管理
Dec 25 Vue.js
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中的按位与和按位或操作示例
2014/01/27 PHP
PHP生成数组再传给js的方法
2014/08/07 PHP
浅谈关于PHP解决图片无损压缩的问题
2017/09/01 PHP
url地址自动加#号问题说明
2010/08/21 Javascript
3种不同方式的焦点图轮播特效分享
2013/10/30 Javascript
js导航栏单击事件背景变换示例代码
2014/01/13 Javascript
JS实现简易图片轮播效果的方法
2015/03/25 Javascript
JS实现从连接中获取youtube的key实例
2015/07/02 Javascript
在javascript中随机数 math random如何生成指定范围数值的随机数
2015/10/21 Javascript
详解页面滚动值scrollTop在FireFox与Chrome浏览器间的兼容问题
2015/12/03 Javascript
JavaScript实现汉字转换为拼音的库文件示例
2016/12/22 Javascript
JS常见简单正则表达式验证功能小结【手机,地址,企业税号,金额,身份证等】
2017/01/22 Javascript
python爬取安居客二手房网站数据(实例讲解)
2017/10/19 Javascript
vue 插值 v-once,v-text, v-html详解
2018/01/19 Javascript
vue.js实现带日期星期的数字时钟功能示例
2018/08/28 Javascript
使用nodejs分离html文件里的js和css详解
2019/04/12 NodeJs
vue路由跳转传递参数的方式总结
2020/05/10 Javascript
OpenLayer学习之自定义测量控件
2020/09/28 Javascript
利用js canvas实现五子棋游戏
2020/10/11 Javascript
[12:21]VICI vs TNC (BO3)
2018/06/07 DOTA
python中print()函数的“,”与java中System.out.print()函数中的“+”功能详解
2017/11/24 Python
python虚拟环境迁移方法
2019/01/03 Python
python 反编译exe文件为py文件的实例代码
2019/06/27 Python
如何使用python爬虫爬取要登陆的网站
2019/07/12 Python
Python中使用filter过滤列表的一个小技巧分享
2020/05/02 Python
python 爬取百度文库并下载(免费文章限定)
2020/12/04 Python
python爬虫scrapy基于CrawlSpider类的全站数据爬取示例解析
2021/02/20 Python
莫斯科隐形眼镜网上商店:Linzi
2019/07/22 全球购物
美国家居装饰店:Z Gallerie
2020/12/28 全球购物
2014年公司庆元旦活动方案
2014/03/05 职场文书
IT工程师岗位职责
2014/07/04 职场文书
预备党员思想汇报1000字
2014/10/07 职场文书
2015年党员发展工作总结
2015/05/13 职场文书
项目备案申请报告
2015/05/15 职场文书
大学入学感言
2015/08/01 职场文书
《索溪峪的野》教学反思
2016/02/19 职场文书