`
sxu
  • 浏览: 37903 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

Nodejs express4 socket.io 共享session

阅读更多

初学Nodejs,期间遇到各种困难,session共享让我有点很郁闷。

只想吐槽一下nodejs中间件的版本更新,改动很大,网上看的教程都是旧的,代码是完全跑不通。

关于session的共享,折腾了半天,大部分从老外的博客中拼凑起来的。

 

中间件版本:

express@4.10.1

cookie@0.1.2

cookie-parser@1.3.3

express-session@1.9.1

socket.io@1.2.0

 

核心代码:

 

io.use(function(socket, next) {
	var data = socket.handshake || socket.request;
	if (data.headers.cookie) {
		data.cookie = cookie.parse(data.headers.cookie);
		data.sessionID = cookieParser.signedCookie(data.cookie[COOKIE_KEY], COOKIE_SECRET);
		data.sessionStore = sessionStore;
		sessionStore.get(data.sessionID, function (err, session) {
			if (err || !session) {
				return next(new Error('session not found'))
			} else {
				data.session = session;
				data.session.id = data.sessionID;
				next();
			}
		});
	} else {
		return next(new Error('Missing cookie headers'));
	}
});

 

 

 

附件中下载源码。 多使用console.log() 慢慢研究。

1
3
分享到:
评论
1 楼 dragon2268 2015-07-08  
楼主您好,最近在做一个项目,用NODE.JS写的聊天室,业务逻辑交给java,但是不知道怎么用Java调用NODE.JS的服务或者接口,比如运营人员推送一条消息给node服务器,服务器给客户端,楼主有这方面的办法或者Demom吗?万分感谢!

相关推荐

    你画我猜基于NodeJS的框架Express以及socketio

    《你画我猜游戏开发:基于NodeJS的Express与Socket.IO实践详解》 在Web开发领域,Node.js以其异步非阻塞I/O和高性能的特点,成为构建实时交互应用的热门选择。本篇文章将深入探讨如何利用Node.js的Express框架和...

    基于WebSoket.io和nodejs开发的类似微信聊天页面附带发送图片和表情功能

    你需要安装必要的Node.js包,如`express`(用于创建Web服务器)和`socket.io`(WebSocket.IO的Node.js版本)。 1. **设置Express服务器**:首先,使用Express创建一个基本的HTTP服务器,这是WebSocket.IO的基础。...

    Nodejs学习笔记大全.pdf

    Web应用中,WebSocket和socket.io可以用于实现长连接,以支持服务器与客户端之间的实时通信。身份验证机制也是Web应用中非常重要的部分,可以采用Cookie配合Session或JWT(JSON Web Tokens)来实现用户身份验证和...

    NodeJS MongoDB打造多人在线聊天室.zip

    4. **Socket.IO**:在聊天室中,Socket.IO负责建立WebSocket连接,处理客户端和服务器之间的消息传递。它可以监听事件(如用户加入房间、发送消息等),并在必要时广播这些事件给所有连接的客户端。 5. **认证与...

    webrtc-simple-server:基于Express +Sọcet.IO的简单服务器,用于路由ICE,SDP webRTC p2p视频通话1-1

    在这个项目中,“webrtc-simple-server”是一个基于Node.js的轻量级服务器,它利用了Express框架和Socket.IO库来处理WebRTC的相关信令过程,以实现1对1的视频通话。 Express是Node.js中最流行的web应用框架,它提供...

    Chat-Box:这是一个用nodejs和express.js开发的聊天框

    4. **Socket.IO**:在Node.js环境下,常常使用Socket.IO库来简化WebSocket的使用,因为它提供了更高级别的抽象,处理了WebSocket的一些兼容性和连接问题。Socket.IO能自动降级到其他传输方式(如polling),确保在...

    基于Node.js + WebSocket打造即时聊天程序嗨聊

    通过本项目的构建过程,开发者不仅能掌握如何使用Node.js和WebSocket来创建实时通讯服务,还将学会利用express和socket.io等热门框架来快速搭建Web应用。项目完成后,用户将能够在浏览器中打开一个网页,与其他用户...

    sails框架的学习指南

    Sails的核心特性包括对Express和Socket.io的集成、使用Waterline ORM进行数据库交互、内置的Blueprint API以及支持Policies中间件。 1. **Sails与Express和Socket.io** Sails框架构建于Express之上,利用其强大的...

    proyecto-curso-nodejs:基于Node JS和WebSockets的聊天应用程序

    - **npm**:Node.js的包管理器,允许开发者共享和安装第三方模块,如Express框架、Socket.IO等。 2. **Express框架** - **快速搭建Web服务器**:Express是基于Node.js的Web应用框架,简化了HTTP服务器的创建,...

    使用nodejs + mongodb 开发个人博客系统.zip

    6. **套接字通信 (socket.io)**:实现实时双向通信,可用于聊天功能或推送通知。 **MongoDB 知识点:** 1. **文档型数据库**:MongoDB 存储数据的形式是 JSON 格式的文档,易于理解和操作。 2. **集合与数据库**:...

    了不起的node.js读书笔记之例程分析

    6. **Chat应用与Socket.IO**:Socket.IO是针对实时应用的库,它在WebSocket基础上提供了一层抽象,解决了WebSocket的一些兼容性和可靠性问题。通过Socket.IO,我们可以轻松实现聊天室和DJ功能,通过`socket.emit`...

    nodejs初学笔记大全

    - **socket.io**:简化 WebSocket 使用,提供跨域和降级支持。 15. **测试工具**(如 Mocha 和 Chai) - **Mocha**:流行的 JavaScript 测试框架。 - **Chai**:断言库,配合 Mocha 进行单元测试和集成测试。 ...

    chat-roulette-mern:使用MongoDB,Express,ReactJS和NodeJS的简单聊天轮盘

    4. **NodeJS**:NodeJS作为后端运行环境,可以处理服务器逻辑,如用户认证、匹配算法、实时通信等。通过WebSocket或Socket.IO实现即时通讯功能。 5. **Real-time Communication**:为了实现聊天轮盘的实时性,项目...

    multiroom-chat-nodejs

    3. **Socket.IO**:在Node.js环境中,Socket.IO是一个流行的库,用于实现实时、低延迟的双向通信。它兼容多种浏览器和技术栈,并且在WebSocket不支持的情况下,可以自动降级到其他通信方式(如Ajax长轮询)。 4. **...

    expressjs-research:通过示例学习express.js Web框架

    在实际项目中,你可以进一步探索Express.js的高级特性,如Socket.IO集成、WebSocket支持、自定义错误类型等,以提升应用的性能和用户体验。随着Node.js和Express.js技术的不断演进,保持学习和更新知识至关重要,...

    node_chat:nodejs聊天室

    项目可能会使用如body-parser(解析请求体)、express-session(管理会话)、socket.io(WebSocket库)等模块。 6. **文件结构**:从文件名称列表`node_chat-master`我们可以推测,这是一个包含源代码和资源的项目...

    microblog-master-nodeJS:microblog-master-nodeJS

    这需要对WebSocket协议和Node.js中的相关库(如socket.io)有一定理解。 总的来说,“microblog-master-nodeJS”项目涵盖了Node.js开发中的诸多重要知识点,包括但不限于Node.js基础、Express框架的应用、数据库...

    chat-redis-nodejs-app:基于Node.js + Redis的简单聊天应用程序

    7. **Node.js模块**:项目可能使用了如`express`(Web应用框架)、`socket.io`(WebSocket库)和`redis`(Redis客户端库)等Node.js模块来简化开发。 8. **部署与运行**:项目可能通过npm(Node.js包管理器)进行...

    BJTU-nodejs-project:nodejs 冲刺一个游戏在线问题

    2. **Socket.IO**:这是一个强大的库,支持实时、双向通信,是构建实时应用如在线游戏的理想选择。它能在WebSocket不被浏览器支持的情况下提供回退机制,确保在各种环境下都能实现可靠的实时通信。 3. **MongoDB**...

Global site tag (gtag.js) - Google Analytics