node中的socket.io制作命名空间

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

io.of(namespace)

制作两个命名空间

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

 1 var express=require("express");
 2 var http=require("http");
 3 var sio=require("socket.io");
 4 var app=express();
 5 var server=http.createServer(app);
 6 app.get("/", function (req,res) {
 7     res.sendfile(__dirname+"/index.html");
 8 });
 9 server.listen(1337,"127.0.0.1", function () {
10     console.log("开始监听1337");
11 });
12 var io=sio.listen(server);
13 var chart=io.of("/chat").on("connection", function (socket) {
14     socket.send("欢迎访问chat空间!");
15     socket.on("message", function (msg) {
16         console.log("chat命名空间接收到信息:"+msg);
17     });
18 });
19 var news=io.of("/news").on("connection", function (socket) {
20     socket.emit("send message","欢迎访问news空间!");
21     socket.on("send message", function (data) {
22        console.log("news命名空间接受到send message事件,数据为:"+data);
23     });
24 });
 1 <!DOCTYPE html>
 2 <html>
 3 <head lang="en">
 4     <meta charset="UTF-8">
 5     <title></title>
 6     <script src="/socket.io/socket.io.js"></script>
 7     <script>
 8         var chat=io.connect("http://localhost/chat"),
 9             news=io.connect("http://localhost/news");
10
11         chat.on("connect", function () {
12             chat.send("你好.");
13             chat.on("message", function (msg) {
14                 console.log("从char空间接收到消息:"+msg);
15             });
16         });
17         news.on("connect", function () {
18             news.emit("send message","hello");
19             news.on("send message", function (data) {
20                 console.log("从news命名空间接收到send message事件,数据位:"+data);
21             });
22         });
23     </script>
24 </head>
25 <body>
26
27 </body>
28 </html>

运行结果:

时间: 2024-10-11 20:14:07

node中的socket.io制作命名空间的相关文章

Node中的Socket.IO 简单Demo及说明

注:下面Demo的Server和Client都是纯后端. 并没有web页面. Server端代码: var express = require('express'); var app = express(); var server = require('http').createServer(app); var io = require('socket.io')(server); //定义变量,用来存储socket.如果是多进程的话,那么socket可以考虑存入redis中 var socket

使用Node.js的socket.io模块开发实时web程序

首发:个人博客,更新&纠错&回复 今天的思维漫游如下:从.net的windows程序开发,摸到nodejs的桌面程序开发,又熟悉了一下nodejs,对“异步”的理解有了上上周对操作系统的学习而更能理解.然后发现了Node.js中的socket.io这个模块,又觉得跟前几天用.net做客户端的socket游戏了.技术世界,兜兜转转,相逢一笑,疑是故人. socket.io用来做实时web程序,解决之前的B/S程序只有无状态连接,特定需求还需要用长连接这种“奇技淫巧”的问题.当然,这是html

使用node.js和socket.io实现多人聊天室

刚学node.js,想着做点东西练练手.网上的东西多而杂,走了不少弯路,花了一天时间在调代码上.参考网上的一篇文章,重写了部分代码,原来的是基于基于node-websocket-server框架的,我没用框架,单单是socket.io. 一.基本功能 1.用户随意输入一个昵称即可登录2.登录成功后1) 对正在登录用户来说,罗列所有在线用户列表,罗列最近的历史聊天记录2) 对已登录的用户来说,通知有新用户进入房间,更新在线用户列表3.退出登录1)支持直接退出2) 当有用户退出,其他所有在线用户会收

Nodejs 中使用Socket.io

安装socket.io npm install socket.io 或者在package.json文件中添加socket.io的依赖包,然后npm install安装所需模块. 在Express http服务器中使用socket.io 在 bin/www 文件中添加: var io = require('socket.io'); var socket = io.listen(server); socket.on('connection', function(client) { console.l

Node.js学习(1):Node.js 和Socket.IO 实现chat

使用 Node.js 和 Socket.IO 构建简单的聊天程序 在node.js根目录下创建文件夹chat,里面添加两个文件:app.js和index.html app.js var fs = require('fs') , http = require('http') , socketio = require('socket.io'); var server = http.createServer(function(req, res) { res.writeHead(200, { 'Cont

node+express+socket.io制作一个聊天室功能

首先是下载包: npm install express npm install socket.io 建立文件: 服务器端代码:server.js 1 var http=require("http"); 2 var express=require("express"); 3 var sio=require("socket.io"); 4 5 var app=express(); 6 app.use(express.static(__dirname+

[Node.js] 基于Socket.IO 的私聊

原文地址:http://www.moye.me/2015/01/02/node_socket-io/ 引子 最近听到这么一个问题:Socket.IO 怎么实现私聊?换个提法:怎么定位到人(端),或者说怎么标识到连接,而不是依赖每个连接的socket.id.好问题. 在 Socket.IO Real-Time Web Application Development的指引下,形成了如下思路: 服务端在每个用户初次进入系统时,产生session_id 服务端强制用户输入昵称,与session_id对应

node.js和socket.io纯js实现的即时通讯实例分享

在这个例子中,其实node.js并没有真正起到服务器的作用,因为我们这里可以直接运行client.html文件,而不用输入url请求,当 然,要想输入url请求页面内容还需要加入请求静态文件的代码.这个实例中node.js最重要的作用就是将服务端迁移到了js,实现了客户端和服务端语 言上的统一,我们只要在浏览器上同时运行两个client.html客户端页面,即可进行简单的即是通讯了,socket.io才是我们真正用来实现即时 通讯的消息的收发. var server = http.createS

node.js之socket.io模块

socket.io模块是一个基于Node.js的项目,其作用主要是将WebSocket协议应用到所有的浏览器.该模块主要应用于实时的长连接多请求项目中,例如在线联网游戏.实时聊天.实时股票查看.二维码扫描登录等.——Node.js开发实战详解 安装和配置的方法和一般的NPM模块安装配置一致: # npm install soctet.io 应该是因为我的本地服务器是win7操作系统,所以在安装的时候会有一堆错误提示,但是貌似不影响使用socket.io模块,没有太在意这个.不知道在linux上是