如何在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 相关文章推荐
JS判断元素为数字的奇异写法分享
Aug 01 Javascript
把字符串按照特定的字母顺序进行排序的js代码
Jan 28 Javascript
JavaScript按位运算符的应用简析
Feb 04 Javascript
AngularJS基于factory创建自定义服务的方法详解
May 25 Javascript
jQuery.Ajax()的data参数类型详解
Jul 23 jQuery
js 只比较时间大小的实例
Oct 26 Javascript
Webpack中雪碧图插件使用详解
May 25 Javascript
深入浅出理解JavaScript闭包的功能与用法
Aug 01 Javascript
trackingjs+websocket+百度人脸识别API实现人脸签到
Nov 26 Javascript
js console.log打印对象时属性缺失的解决方法
May 23 Javascript
vuex+axios+element-ui实现页面请求loading操作示例
Feb 02 Javascript
Vue Render函数原理及代码实例解析
Jul 30 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
2020年4月新番动漫目录 官方宣布4月播出的作品一览
2020/03/08 日漫
mysql5详细安装教程
2007/01/15 PHP
Zend framework处理一个http请求的流程分析
2010/02/08 PHP
ThinkPHP模板比较标签用法详解
2014/06/30 PHP
php实现图片等比例缩放代码
2015/07/23 PHP
PHP Yii框架之表单验证规则大全
2015/11/16 PHP
win10环境PHP 7 安装配置【教程】
2016/05/09 PHP
php使用CURL模拟GET与POST向微信接口提交及获取数据的方法
2016/09/23 PHP
基于Jquery制作的幻灯片图集效果打包下载
2011/02/12 Javascript
关于JavaScript的with 语句的使用方法
2011/05/09 Javascript
关于锚点跳转及jQuery下相关操作与插件
2012/10/01 Javascript
简易js代码实现计算器操作
2013/04/15 Javascript
左侧是表头的JS表格控件(自写,网上没有的)
2013/06/04 Javascript
微信企业号开发之微信考勤百度地图定位
2015/09/11 Javascript
基于JavaScript实现文字超出部分隐藏
2016/02/29 Javascript
nodejs搭建本地http服务器教程
2017/03/13 NodeJs
JS实现按钮添加背景音乐示例代码
2017/10/17 Javascript
react-router browserHistory刷新页面404问题解决方法
2017/12/29 Javascript
说说如何利用 Node.js 代理解决跨域问题
2019/04/22 Javascript
Python定时器实例代码
2017/11/01 Python
Python中 传递值 和 传递引用 的区别解析
2018/02/22 Python
python判断一个集合是否为另一个集合的子集方法
2018/05/04 Python
pytorch打印网络结构的实例
2019/08/19 Python
python3 requests库文件上传与下载实现详解
2019/08/22 Python
解决paramiko执行命令超时的问题
2020/04/16 Python
详解HTML5中rel属性的prefetch预加载功能使用
2016/05/06 HTML / CSS
html5教你做炫酷的碎片式图片切换 (canvas)
2017/07/28 HTML / CSS
美国健康和保健平台:healtop
2020/07/02 全球购物
优秀毕业生推荐信
2013/11/02 职场文书
电钳专业个人求职信
2014/01/04 职场文书
总结表彰大会主持词
2014/03/26 职场文书
企业群众路线教育实践活动心得体会
2014/11/03 职场文书
运动员代表致辞
2015/07/29 职场文书
安全教育主题班会教案
2015/08/12 职场文书
2016年教师师德师风心得体会
2016/01/12 职场文书
Java 关于String字符串原理上的问题
2022/04/07 Java/Android