如何在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 参数传递的实际应用代码分析
Sep 13 Javascript
一个可拖拽列宽表格实例演示
Nov 26 Javascript
jQuery实现查找最近父节点的方法
Jun 23 Javascript
JS正则RegExp.test()使用注意事项(不具有重复性)
Dec 28 Javascript
Bootstrap的popover(弹出框)在append后弹不出(失效)
Feb 27 Javascript
jQuery使用正则验证15/18身份证的方法示例
Apr 27 jQuery
Angular2中select用法之设置默认值与事件详解
May 07 Javascript
Vue中的异步组件函数实现代码
Jul 20 Javascript
JS定义函数的几种常用方法小结
May 23 Javascript
vue-router的两种模式的区别
May 30 Javascript
vue中npm包全局安装和局部安装过程
Sep 03 Javascript
微信小程序之滑动页面隐藏和显示组件功能的实现代码
Jun 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 冲泡冲煮
深入解析fsockopen与pfsockopen的区别
2013/07/05 PHP
PHP中创建和验证哈希的简单方法实探
2015/07/06 PHP
基于JQuery+PHP编写砸金蛋中奖程序
2015/09/08 PHP
ThinkPHP 模板substr的截取字符串函数详解
2017/01/09 PHP
jqplot通过ajax动态画折线图的方法及思路
2013/12/08 Javascript
jQuery遍历Table应用示例
2014/04/09 Javascript
javascript中字符串拼接详解
2014/09/26 Javascript
jQuery选择器源码解读(八):addCombinator函数
2015/03/31 Javascript
轻松实现javascript图片轮播特效
2016/01/13 Javascript
微信小程序 animation API详解及实例代码
2016/10/08 Javascript
javascript鼠标跟随运动3种效果(眼球效果,苹果菜单,方向跟随)
2016/10/27 Javascript
基于Layer+jQuery的自定义弹框
2020/05/26 Javascript
jquery-mobile表单的创建方法详解
2016/11/23 Javascript
JS请求servlet功能示例
2017/06/01 Javascript
分享19个JavaScript 有用的简写写法
2017/07/07 Javascript
微信小程序调用微信支付接口的实现方法
2019/04/29 Javascript
[41:05]Serenity vs Pain 2018国际邀请赛小组赛BO2 第二场 8.19
2018/08/21 DOTA
为Python程序添加图形化界面的教程
2015/04/29 Python
Python中splitlines()方法的使用简介
2015/05/20 Python
使用Python绘制图表大全总结
2017/02/11 Python
python基础学习之如何对元组各个元素进行命名详解
2018/07/12 Python
Python 利用高德地图api实现经纬度与地址的批量转换
2019/08/14 Python
python2 对excel表格操作完整示例
2020/02/23 Python
python 使用raw socket进行TCP SYN扫描实例
2020/05/05 Python
使用python库xlsxwriter库来输出各种xlsx文件的示例
2020/09/01 Python
PyCharm设置注释字体颜色以及是否倾斜的操作
2020/09/16 Python
Java面试题汇总
2015/12/06 面试题
医院实习介绍信
2014/01/12 职场文书
大学军训感言1000字
2014/02/25 职场文书
消防安全责任书
2014/04/14 职场文书
2015年学校德育工作总结
2015/04/22 职场文书
驳回起诉民事裁定书
2015/05/19 职场文书
面试分析分布式架构Redis热点key大Value解决方案
2022/03/13 Redis
Python绘制散乱的点构成的图的方法
2022/04/21 Python
错误码NET::ERR_CERT_DATE_INVALID证书已过期解决方法?
2022/07/07 数码科技