如何在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 相关文章推荐
jQuery实现动画效果的实例代码
May 07 Javascript
javascript的动态加载、缓存、更新以及复用(一)
Jun 09 Javascript
纯JS实现本地图片预览的方法
Jul 31 Javascript
jQuery+HTML5美女瀑布流布局实现方法
Sep 21 Javascript
基于JS实现新闻列表无缝向上滚动实例代码
Jan 22 Javascript
jquery实现自定义图片裁剪功能【推荐】
Mar 08 Javascript
浅谈express 中间件机制及实现原理
Aug 31 Javascript
深入理解JavaScript的async/await
Aug 05 Javascript
vue+axios+element ui 实现全局loading加载示例
Sep 11 Javascript
微信小程序动画(Animation)的实现及执行步骤
Oct 28 Javascript
vue 路由守卫(导航守卫)及其具体使用
Feb 25 Javascript
解决Vue 移动端点击出现300毫秒延迟的问题
Jul 21 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
德生S2000收音机更换“钕铁硼”全频扬声器
2021/03/02 无线电
PHP mysql事务问题实例分析
2016/01/18 PHP
PHP插件PHPMailer发送邮件功能
2017/02/28 PHP
几款极品的javascript压缩混淆工具
2007/05/16 Javascript
JQuery 遮罩层实现(mask)实现代码
2010/01/09 Javascript
jQuery的attr与prop使用介绍
2013/10/10 Javascript
javascript中全局对象的parseInt()方法使用介绍
2013/12/19 Javascript
Jquery利用mouseenter和mouseleave实现鼠标经过弹出层且可以点击
2014/02/12 Javascript
jquery mobile的触控点击事件会多次触发问题的解决方法
2014/05/08 Javascript
JavaScript 学习笔记之操作符
2015/01/14 Javascript
js判断移动端是否安装某款app的多种方法
2015/12/18 Javascript
jQuery实现页面评论栏中访客信息自动填写功能的方法
2016/05/23 Javascript
jQuery Easyui datagrid连续发送两次请求问题
2016/12/13 Javascript
Canvas实现动态的雪花效果
2017/02/13 Javascript
Bootstrap组合上、下拉框简单实现代码
2017/03/06 Javascript
JS字符串按逗号和回车分隔的方法
2017/04/25 Javascript
浅谈Vue.js应用的四种AJAX请求数据模式
2017/08/30 Javascript
jquery操作ul的一些操作笔记整理(干货)
2017/08/31 jQuery
移动端效果之IndexList详解
2017/10/20 Javascript
javaScript产生随机数的用法小结
2018/04/21 Javascript
JS编写兼容IE6,7,8浏览器无缝自动轮播
2018/10/12 Javascript
vue-cli系列之vue-cli-service整体架构浅析
2019/01/14 Javascript
vue两组件间值传递 $router.push实现方法
2019/05/15 Javascript
JS实现提示效果弹出及延迟隐藏的功能
2019/08/26 Javascript
[04:12]第二届DOTA2亚洲邀请赛选手传记-Newbee.Sccc
2017/04/03 DOTA
python随机生成指定长度密码的方法
2015/04/04 Python
Eclipse和PyDev搭建完美Python开发环境教程(Windows篇)
2016/11/16 Python
python3人脸识别的两种方法
2019/04/25 Python
Python实现快速排序的方法详解
2019/10/25 Python
纯css3实现走马灯效果
2014/12/26 HTML / CSS
什么是会话Bean
2015/05/14 面试题
营销主管自我评价怎么写
2013/09/19 职场文书
地震捐款倡议书
2014/08/29 职场文书
2015年安全教育月活动总结
2015/03/26 职场文书
评测 | 大屏显示带收音机的高端音箱,JBL TUNE2便携式插卡音箱实测
2021/04/24 无线电
Python超简单容易上手的画图工具库推荐
2021/05/10 Python