如何在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 相关文章推荐
经常用的图片在容器中的水平垂直居中实例
Jun 10 Javascript
toString()一个会自动调用的方法
Feb 08 Javascript
在Google 地图上实现做的标记相连接
Jan 05 Javascript
JavaScript实现的双向跨域插件分享
Jan 31 Javascript
浅析AngularJs HTTP响应拦截器
Dec 28 Javascript
基于Bootstrap+jQuery.validate实现表单验证
May 30 Javascript
vue router嵌套路由在history模式下刷新无法渲染页面问题的解决方法
Jan 25 Javascript
JavaScript实现浅拷贝与深拷贝的方法分析
Jul 05 Javascript
在create-react-app中使用css modules的示例代码
Jul 31 Javascript
记一次用vue做的活动页的方法步骤
Apr 11 Javascript
React Native中ScrollView组件轮播图与ListView渲染列表组件用法实例分析
Jan 06 Javascript
Element Notification通知的实现示例
Jul 27 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
Ping服务的php实现方法,让网站快速被收录
2012/02/04 PHP
php反射应用示例
2014/02/25 PHP
PHP+jQuery实现滚屏无刷新动态加载数据功能详解
2017/05/04 PHP
论坛特效代码收集(落伍转发-不错)
2006/12/02 Javascript
在Z-Blog中运行代码[html][/html](纯JS版)
2007/03/25 Javascript
基于JQuery实现相同内容合并单元格的代码
2011/01/12 Javascript
JavaScript之HTMLCollection接口代码
2011/04/27 Javascript
Js 时间间隔计算的函数(间隔天数)
2011/11/15 Javascript
jQuery获取样式中的背景颜色属性值/颜色值
2012/12/17 Javascript
Javascript Throttle &amp; Debounce应用介绍
2013/03/19 Javascript
使用JS获取当前地理位置方法汇总
2014/12/18 Javascript
如何使用HTML5地理位置定位功能
2015/04/27 Javascript
jQuery Mobile开发中日期插件Mobiscroll使用说明
2016/03/02 Javascript
利用Javascript仿Excel的数据透视分析功能
2016/09/07 Javascript
js获取当前页的URL与window.location.href简单方法
2017/02/13 Javascript
浅谈JavaScript 代码整洁之道
2018/10/23 Javascript
Vue列表渲染的示例代码
2018/11/01 Javascript
vue.js实现会动的简历(包含底部导航功能,编辑功能)
2019/04/08 Javascript
利用JavaScript将Excel转换为JSON示例代码
2019/06/14 Javascript
VueJS实现用户管理系统
2020/05/29 Javascript
Python原始字符串(raw strings)用法实例
2014/10/13 Python
Python中functools模块的常用函数解析
2016/06/30 Python
python和shell监控linux服务器的详细代码
2018/06/22 Python
Python OpenCV实现视频分帧
2019/06/01 Python
python使用opencv对图像mask处理的方法
2019/07/05 Python
基于Django的乐观锁与悲观锁解决订单并发问题详解
2019/07/31 Python
python实现ftp文件传输系统(案例分析)
2020/03/20 Python
Python sklearn中的.fit与.predict的用法说明
2020/06/28 Python
Python不支持 i ++ 语法的原因解析
2020/07/22 Python
Python语言编写智力问答小游戏功能
2020/10/13 Python
2014卖家双十一活动策划书
2014/09/29 职场文书
2014年创卫工作总结
2014/11/24 职场文书
防汛通知
2015/04/25 职场文书
2015年基层党建工作汇报材料
2015/06/25 职场文书
聊聊Python中关于a=[[]]*3的反思
2021/06/02 Python
Mybatis-plus配置分页插件返回统一结果集
2022/06/21 Java/Android