如何在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 相关文章推荐
比较简单的一个符合web标准的JS调用flash方法
Nov 29 Javascript
EXTJS FORM HIDDEN TEXTFIELD 赋值 使用value不好用的问题
Apr 16 Javascript
Extjs4中的分页应用结合前后台
Dec 13 Javascript
在JS中如何调用JSP中的变量
Jan 22 Javascript
JavaScript通过select动态更换图片的方法
Mar 23 Javascript
jQuery异步上传文件插件ajaxFileUpload详细介绍
May 19 Javascript
Bootstrap中的fileinput 多图片上传及编辑功能
Sep 05 Javascript
jQuery tip提示插件(实例分享)
Apr 28 jQuery
angularJS 发起$http.post和$http.get请求的实现方法
May 18 Javascript
简单说说如何使用vue-router插件的方法
Apr 08 Javascript
详解mpvue开发微信小程序基础知识
Sep 23 Javascript
js实现随机抽奖
Mar 19 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
Syphon 秘笈
2021/03/03 冲泡冲煮
深入php中var_dump方法的使用详解
2013/06/24 PHP
php float不四舍五入截取浮点型字符串方法总结
2013/10/28 PHP
windows下的WAMP环境搭建图文教程(推荐)
2017/07/27 PHP
原生php实现excel文件读写的方法分析
2018/04/25 PHP
PHP实现获取文件mime类型多种方法解析
2020/05/28 PHP
display和visibility的区别示例介绍
2014/02/26 Javascript
jquery分页插件jpaginate在IE中不兼容问题
2014/04/22 Javascript
一个很有趣3D球状标签云兼容IE8
2014/08/22 Javascript
jQuery之DOM对象和jQuery对象的转换与区别分析
2015/01/08 Javascript
前端学习笔记style,currentStyle,getComputedStyle的用法与区别
2016/05/28 Javascript
微信小程序开发经验总结(推荐)
2017/01/11 Javascript
Javascript中toFixed计算错误(依赖银行家舍入法的缺陷)解决方法
2017/08/22 Javascript
Vue的watch和computed方法的使用及区别介绍
2018/09/06 Javascript
vue keep-alive列表页缓存 详情页返回上一页不刷新,定位到之前位置
2019/11/26 Javascript
node.js 微信开发之定时获取access_token
2020/02/07 Javascript
浅谈Vue 函数式组件的使用技巧
2020/06/16 Javascript
解决vue 退出动画无效的问题
2020/08/09 Javascript
跟老齐学Python之深入变量和引用对象
2014/09/24 Python
解析Python中的异常处理
2015/04/28 Python
Python 硬币兑换问题
2019/07/29 Python
pytorch 图像中的数据预处理和批标准化实例
2020/01/15 Python
python轮询机制控制led实例
2020/05/03 Python
HTML5实现多张图片上传功能
2016/03/11 HTML / CSS
可能这些是你想要的H5软键盘兼容方案(小结)
2019/04/23 HTML / CSS
厨师岗位职责
2013/11/12 职场文书
美德好少年事迹材料
2014/01/19 职场文书
偷看我的初中毕业鉴定
2014/01/29 职场文书
电厂职工自我鉴定
2014/02/20 职场文书
厨师长岗位职责范本
2014/08/25 职场文书
工作散漫检讨书
2014/09/16 职场文书
2015年见习期个人工作总结
2015/05/28 职场文书
当幸福来敲门英文观后感
2015/06/01 职场文书
Python上下文管理器Content Manager
2021/06/26 Python
Oracle 临时表空间SQL语句的实现
2021/09/25 Oracle
windows安装 redis 6.2.6最新步骤详解
2022/04/26 Redis