如何在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精华代码集
Jan 24 Javascript
JavaScript Eval 函数使用
Mar 23 Javascript
javascript preload&amp;lazy load
May 13 Javascript
javascript与有限状态机详解
May 08 Javascript
JS中三目运算符和if else的区别分析与示例
Nov 21 Javascript
简单的JS时钟实例讲解
Jan 13 Javascript
jQuery easyui的validatebox校验规则扩展及easyui校验框validatebox用法
Jan 18 Javascript
微信小程序 倒计时组件实现代码
Oct 24 Javascript
AngularJs 延时器、计时器实例代码
Sep 16 Javascript
vue-cli 组件的导入与使用教程详解
Apr 11 Javascript
LayUi中接口传数据成功,表格不显示数据的解决方法
Aug 19 Javascript
详解vscode中vue代码颜色插件
Oct 11 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
如何做到多笔资料的同步
2006/10/09 PHP
PHP编程风格规范分享
2014/01/15 PHP
PHP使用递归生成文章树
2015/04/21 PHP
实例讲解YII2中多表关联的使用方法
2017/07/21 PHP
PHP中散列密码的安全性分析
2019/07/26 PHP
PHP7 标准库修改
2021/03/09 PHP
javascript中使用replaceAll()函数实现字符替换的方法
2010/12/25 Javascript
原生JS实现LOADING效果
2015/03/16 Javascript
javascript中setTimeout使用指南
2015/07/26 Javascript
浅析AngularJs HTTP响应拦截器
2015/12/28 Javascript
jQuery ajax请求返回list数据动态生成input标签,并把list数据赋值到input标签
2016/03/29 Javascript
JS验证不重复验证码
2017/02/10 Javascript
微信小程序自定义导航隐藏和显示功能
2017/06/13 Javascript
AngularJS实现select的ng-options功能示例
2017/07/12 Javascript
详解用webpack的CommonsChunkPlugin提取公共代码的3种方式
2017/11/09 Javascript
react同构实践之实现自己的同构模板
2019/03/13 Javascript
微信小程序实现左滑动删除效果
2020/03/30 Javascript
Python中dictionary items()系列函数的用法实例
2014/08/21 Python
Python多进程同步简单实现代码
2016/04/27 Python
python 3利用Dlib 19.7实现摄像头人脸检测特征点标定
2018/02/26 Python
python 解决mysql where in 对列表(list,,array)问题
2020/06/06 Python
详解CSS3 Media Queries中媒体属性的使用
2016/02/29 HTML / CSS
悬挂训练绳:TRX
2017/12/14 全球购物
英国设计的甲板鞋和船鞋:Chatham
2018/12/06 全球购物
英文求职信范文
2014/05/23 职场文书
幼儿教师师德师风演讲稿
2014/08/22 职场文书
云南省召开党的群众路线教育实践活动总结会议新闻稿
2014/10/21 职场文书
2015年检验员工作总结范文
2015/04/30 职场文书
2015年卫生局工作总结
2015/07/24 职场文书
企业安全生产检查制度
2015/08/06 职场文书
2016年秋季运动会广播稿
2015/12/21 职场文书
《猴王出世》教学反思
2016/02/23 职场文书
golang fmt格式“占位符”的实例用法详解
2021/07/04 Golang
详细聊聊浏览器是如何看闭包的
2021/11/11 Javascript
Win10 和 Win11可以共存吗? win10/11产品生命周期/服务更新介绍
2021/11/21 数码科技
SQL Server查询某个字段在哪些表中存在
2022/03/03 SQL Server