如何在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 相关文章推荐
学习YUI.Ext 第四天--对话框Dialog的使用
Mar 10 Javascript
js 固定悬浮效果实现思路代码
Aug 02 Javascript
使用jQuery实现验证上传图片的格式与大小
Dec 03 Javascript
BootStrap 智能表单实战系列(五) 表单依赖插件处理
Jun 13 Javascript
AngularJS基础 ng-keypress 指令简单示例
Aug 02 Javascript
jquery注册文本框获取焦点清空,失去焦点赋值的简单实例
Sep 08 Javascript
js实现碰撞检测特效代码分享
Oct 16 Javascript
JS身份证信息验证正则表达式
Jun 12 Javascript
妙用缓存调用链实现JS方法的重载
Apr 30 Javascript
JavaScript JSON数据处理全集(小结)
Aug 15 Javascript
100行代码实现vue表单校验功能(小白自编)
Nov 19 Javascript
js数组中去除重复值的几种方法
Aug 03 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
无数据库的详细域名查询程序PHP版(4)
2006/10/09 PHP
控制PHP的输出:缓存并压缩动态页面
2013/06/11 PHP
PHP 利用Mail_MimeDecode类提取邮件信息示例
2014/01/26 PHP
php 使用curl模拟ip和来源进行访问的实现方法
2017/05/02 PHP
PHP7变量处理机制修改
2021/03/09 PHP
js实现目录定位正文示例
2013/11/14 Javascript
jquery中get和post的简单实例
2014/02/04 Javascript
javascript中Number对象的toString()方法分析
2014/12/20 Javascript
纯JavaScript 实现flappy bird小游戏实例代码
2016/09/27 Javascript
vue上传图片组件编写代码
2017/07/26 Javascript
Node.js pipe实现源码解析
2017/08/12 Javascript
Mac中安装nvm的教程分享
2017/12/11 Javascript
vue-test-utils初使用详解
2019/05/23 Javascript
async/await让异步操作同步执行的方法详解
2019/11/01 Javascript
js验证密码强度解析
2020/03/18 Javascript
谈谈node.js中的模块系统
2020/09/01 Javascript
jQuery实现朋友圈查看图片
2020/09/11 jQuery
NodeJS模块Buffer原理及使用方法解析
2020/11/11 NodeJs
JavaScript代码实现微博批量取消关注功能
2021/02/05 Javascript
python+opencv实现动态物体识别
2018/01/09 Python
基于Python Numpy的数组array和矩阵matrix详解
2018/04/04 Python
对pandas中两种数据类型Series和DataFrame的区别详解
2018/11/12 Python
Python 文本文件内容批量抽取实例
2018/12/10 Python
Python button选取本地图片并显示的实例
2019/06/13 Python
使用PyQt5实现图片查看器的示例代码
2020/04/21 Python
pyMySQL SQL语句传参问题,单个参数或多个参数说明
2020/06/06 Python
Python字符串split及rsplit方法原理详解
2020/06/29 Python
区分python中的进程与线程
2020/08/13 Python
使用canvas绘制超炫时钟
2014/12/17 HTML / CSS
英国百年闻名的优质健康产品连锁店:Holland & Barrett
2019/12/19 全球购物
机电专业毕业生推荐信
2013/11/10 职场文书
餐饮业会计岗位职责
2013/12/19 职场文书
如何写贫困证明申请书
2014/10/29 职场文书
2015年幼儿园安全工作总结
2015/05/12 职场文书
旷工检讨书大全
2015/08/15 职场文书
评估“风险”创业计划的几大要点
2019/08/12 职场文书