node.js中使用socket.io制作命名空间


Posted in Javascript onDecember 15, 2014

如果开发者想在一个特定的应用程序中完全控制消息与事件的发送,只需要使用一个默认的"/"命名空间就足够了.但是如果开发者需要将应用程序作为第三方服务提供给其他应用程序,则需要为一个用于与客户端连接的socket端口定义一个独立的命名空间.

io.of(namespace)

制作两个命名空间

chat和news然后在客户端相互发送信息.

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 io=sio.listen(server);

var chart=io.of("/chat").on("connection", function (socket) {

    socket.send("欢迎访问chat空间!");

    socket.on("message", function (msg) {

        console.log("chat命名空间接收到信息:"+msg);

    });

});

var news=io.of("/news").on("connection", function (socket) {

    socket.emit("send message","欢迎访问news空间!");

    socket.on("send message", function (data) {

       console.log("news命名空间接受到send message事件,数据为:"+data);

    });

});
<!DOCTYPE html>

<html>

<head lang="en">

    <meta charset="UTF-8">

    <title></title>

    <script src="/socket.io/socket.io.js"></script>

    <script>

        var chat=io.connect("http://localhost/chat"),

            news=io.connect("http://localhost/news");

        chat.on("connect", function () {

            chat.send("你好.");

            chat.on("message", function (msg) {

                console.log("从char空间接收到消息:"+msg);

            });

        });

        news.on("connect", function () {

            news.emit("send message","hello");

            news.on("send message", function (data) {

                console.log("从news命名空间接收到send message事件,数据位:"+data);

            });

        });

    </script>

</head>

<body>

</body>

</html>

运行结果:

node.js中使用socket.io制作命名空间

小伙伴们是否了解了在node.js中使用socket.io制作命名空间的方法了呢,这里的2个例子很简单,童鞋们自由发挥下。

Javascript 相关文章推荐
[原创]站长必须要知道的javascript广告代码
May 30 Javascript
一个基于jquery的图片切换效果
Jul 06 Javascript
jQuery判断checkbox(复选框)是否被选中以及全选、反选实现代码
Feb 21 Javascript
简介JavaScript中fixed()方法的使用
Jun 08 Javascript
jquery自定义插件开发之window的实现过程
May 06 Javascript
jquery做个日期选择适用于手机端示例
Jan 10 Javascript
利用n 升级工具升级Node.js版本及在mac环境下的坑
Feb 15 Javascript
Vuex利用state保存新闻数据实例
Jun 28 Javascript
使用vue2实现带地区编号和名称的省市县三级联动效果
Nov 05 Javascript
javascript设计模式 ? 简单工厂模式原理与应用实例分析
Apr 09 Javascript
JavaScript ECMA-262-3 深入解析(二):变量对象实例详解
Apr 25 Javascript
Node.js web 应用如何封装到Docker容器中
Sep 01 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
超级简单的jquery操作表格方法
Dec 15 #Javascript
You might like
深入理解PHP原理之异常机制
2010/08/21 PHP
探讨PHP调用时间格式的参数详解
2013/06/06 PHP
php函数指定默认值方法的小例子
2013/12/04 PHP
PHP输出英文时间日期的安全方法(RFC 1123格式)
2014/06/13 PHP
PHP扩展开发入门教程
2015/02/26 PHP
PHP curl使用实例
2015/07/02 PHP
全面解析PHP面向对象的三大特征
2017/06/10 PHP
php实现基于pdo的事务处理方法示例
2017/07/21 PHP
laravel 获取当前url的别名方法
2019/10/11 PHP
JQuery 应用 JQuery.groupTable.js
2010/12/15 Javascript
javascript模版引擎-tmpl的bug修复与性能优化分析
2011/10/23 Javascript
Extjs中的GridPanel隐藏列会显示在menuDisabled中解决方法
2013/01/27 Javascript
JavaScript中圆括号()和方括号[]的特殊用法疑问解答
2013/08/06 Javascript
jQuery获取父元素节点、子元素节点及兄弟元素节点的方法
2016/04/14 Javascript
BootStrap使用popover插件实现鼠标经过显示并保持显示框
2016/06/23 Javascript
jQuery插件FusionCharts实现的2D饼状图效果【附demo源码下载】
2017/03/03 Javascript
JS闭包用法实例分析
2017/03/27 Javascript
简单谈谈原生js的math对象
2017/06/27 Javascript
Angular网络请求的封装方法
2018/05/22 Javascript
Javascript 之封装(Package)
2018/09/14 Javascript
js正则匹配多个全部数据问题
2019/12/20 Javascript
openlayers4实现点动态扩散
2020/08/17 Javascript
一篇文章带你从零快速上手Rollup
2020/09/07 Javascript
Python open()文件处理使用介绍
2014/11/30 Python
python登录豆瓣并发帖的方法
2015/07/08 Python
Python入门_浅谈数据结构的4种基本类型
2017/05/16 Python
完美解决安装完tensorflow后pip无法使用的问题
2018/06/11 Python
python3学习之Splash的安装与实例教程
2018/07/09 Python
使用 Python 实现简单的 switch/case 语句的方法
2018/09/17 Python
python3使用QQ邮箱发送邮件
2020/05/20 Python
python map比for循环快在哪
2020/09/21 Python
浅谈基于Canvas的手绘风格图形库Rough.js
2018/03/19 HTML / CSS
2014年应届大学生自我评价
2014/01/09 职场文书
创业计划书之香辣虾火锅
2019/09/23 职场文书
SpringBoot整合RabbitMQ的5种模式实战
2021/08/02 Java/Android
基于Redis6.2.6版本部署Redis Cluster集群的问题
2022/04/01 Redis