如何在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 相关文章推荐
在JavaScript中通过URL传递汉字的方法
Apr 09 Javascript
Javascript UrlDecode函数代码
Jan 09 Javascript
jqeury eval将字符串转换json的方法
Jan 20 Javascript
js内存泄露的几种情况详细探讨
May 31 Javascript
在百度知道团队中快速审批新成员的js脚本
Feb 02 Javascript
jQuery实现产品对比功能附源码下载
Aug 09 Javascript
微信小程序 window_x64环境搭建
Sep 30 Javascript
在nginx上部署vue项目(history模式)的方法
Dec 28 Javascript
使用Angular CLI进行Build(构建)和Serve详解
Mar 24 Javascript
vue-cli 2.*中导入公共less文件的方法步骤
Nov 22 Javascript
基于postman获取动态数据过程详解
Sep 08 Javascript
Vue实现省市区三级联动
Dec 27 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
如何选购合适的收音机
2021/03/01 无线电
php用户登录之cookie信息安全分析
2016/05/13 PHP
PHP socket 模拟POST 请求实例代码
2016/07/18 PHP
基于jquery的给文章加入关键字链接
2010/10/26 Javascript
ASP.NET jQuery 实例5 (显示CheckBoxList成员选中的内容)
2012/01/13 Javascript
分享8款优秀的 jQuery 加载动画和进度条插件
2012/10/24 Javascript
仿新浪微博登陆邮箱提示效果的js代码
2013/08/02 Javascript
IE下window.onresize 多次调用与死循环bug处理方法介绍
2013/11/12 Javascript
jquery进行数组遍历如何跳出当前的each循环
2014/06/05 Javascript
jquery 为a标签绑定click事件示例代码
2014/06/23 Javascript
jQuery div拖拽用法实例
2016/01/14 Javascript
Angular2从搭建环境到开发步骤详解
2016/10/17 Javascript
jQuery Ajax前后端使用JSON进行交互示例
2017/03/17 Javascript
前端构建工具之gulp的配置与搭建详解
2017/06/12 Javascript
JS时间控制实现动态效果的实例讲解
2017/07/31 Javascript
NodeJs通过async/await处理异步的方法
2017/10/09 NodeJs
浅谈webpack编译vue项目生成的代码探索
2017/12/11 Javascript
新版vue-cli模板下本地开发环境使用node服务器跨域的方法
2018/04/03 Javascript
js实现input密码框显示/隐藏功能
2020/09/10 Javascript
node.js中express模块创建服务器和http模块客户端发请求
2019/03/06 Javascript
微信小程序学习笔记之登录API与获取用户信息操作图文详解
2019/03/29 Javascript
从表单校验看JavaScript策略模式的使用详解
2020/10/17 Javascript
c++生成dll使用python调用dll的方法
2014/01/20 Python
python检测远程端口是否打开的方法
2015/03/14 Python
python获取图片颜色信息的方法
2015/03/18 Python
Python数据可视化处理库PyEcharts柱状图,饼图,线性图,词云图常用实例详解
2020/02/10 Python
浅谈python锁与死锁问题
2020/08/14 Python
英国第二大营养品供应商:Vitabiotics
2016/10/01 全球购物
罗兰·穆雷官网:Roland Mouret
2018/09/28 全球购物
美国战术品牌:5.11 Tactical
2019/05/01 全球购物
Yahoo-PHP面试题3
2012/01/14 面试题
中华在我心中演讲稿
2014/09/13 职场文书
业务员辞职信范文
2015/03/02 职场文书
工程款申请报告
2015/05/15 职场文书
学习弘扬焦裕禄精神心得体会
2016/01/23 职场文书
SQL实现LeetCode(175.联合两表)
2021/08/04 MySQL