《Node应用程序构建——使用MongoDB和Backbone》一2.4 Socket.io

本文涉及的产品
云数据库 MongoDB,独享型 2核8GB
推荐场景:
构建全方位客户视图
简介:

本节书摘来自异步社区《Node应用程序构建——使用MongoDB和Backbone》一书中的第2章,第2.4节,作者【美】Mike Wilson,更多章节内容可以访问云栖社区“异步社区”公众号查看

2.4 Socket.io

Node应用程序构建——使用MongoDB和Backbone
Socket.io是你的朋友。它将消除制作实时网络应用程序时的乏味工作,处理所有跨浏览器兼容的问题,在你的后端Node服务器和前端JavaScript客户端之间,留出干净、简单的JavaScript接口。这是一个令人激动的库,因为作为一个程序员,它让你专注于单一脚本语言的程序代码,消除数据和最终用户之间的网络障碍。

要安装Socket.id,就用npm。


3c67e2ea3432c41e5d08f3aa55e524383f4e7425

例2-7为网站添加了实时聊天功能,它创建了一个Socket.io对象,并将其附加到http.Server上,在Express之前。在接到浏览器的socket连接时,Socket.io触发应用内的一个回调函数,向连接用户发出任意的一段欢迎消息。sendChat函数是为了方便而创建的;给定标题和内容,它使用Socket.io的emit命令发送一段JSON数据给连接的socket。因为它在回调函数之内,所以对所有socket级别的事件是可见的,但对应用的其他部分是不可见的。

例2-7 为Express服务器添加实时聊天功能


16248b2801d8380b5df1569ab2dd082bef23e3cb

socket.on('chat'…)这行代码创建了一个事件回调,每当连接的用户往socket发送消息时,就会执行。这里没有太多功能,服务器只是将用户发来的消息直接显示给他们。

为了给这个例子增加点活力,我已经将一个JavaScript的setInterval函数与其回调函数包含了进来,每隔5秒钟,它会向连接的客户端随机发送3个配角的一句口头禅。

在例2-7中,Express服务器的实例化和之前的例子不同。它不是让Express对象直接监听传入的连接,而是先通过http.createServer(app)函数附加在http.Server中,得到的服务器对象再监听进入的连接。在幕后,Express的listen命令做同样的事而不暴露http.Server。采用这种方式,你要暴露http.Server,以便让Socket.io连接到它。

例2-8的聊天布局在block scripts中加入了内容,在浏览器中渲染时,它在HTML内容中加上了Socket.io的功能。Socket.io使某些文件可供下载,这就是为什么你可以包含对/socket.io/socket.io.js的脚本引用。JavaScript文件socket.io.js包含了浏览器连接到socket服务器所需的全部功能,它还包含回退机制,为过时的、不支持Web socket的浏览器提供类似socket的功能。

例2-8 聊天页面的Jade模板(chat.jade)


4004c328693200641f761ac0c2dc435260da9b32

一旦提交按钮被激活,Socket.io会发出聊天框的内容。在从网络服务器接收聊天事件后,Socket.io会把传入的消息内容替换到聊天显示窗口(div#chat)。重要的是,要注意到socket事件和函数不论用在客户端上还是网络服务器上都是完全相同的。这让你为整个应用程序提供了一个干净的通信联系,无需担心传输或接收的数据需要转换。

相关实践学习
MongoDB数据库入门
MongoDB数据库入门实验。
快速掌握 MongoDB 数据库
本课程主要讲解MongoDB数据库的基本知识,包括MongoDB数据库的安装、配置、服务的启动、数据的CRUD操作函数使用、MongoDB索引的使用(唯一索引、地理索引、过期索引、全文索引等)、MapReduce操作实现、用户管理、Java对MongoDB的操作支持(基于2.x驱动与3.x驱动的完全讲解)。 通过学习此课程,读者将具备MongoDB数据库的开发能力,并且能够使用MongoDB进行项目开发。   相关的阿里云产品:云数据库 MongoDB版 云数据库MongoDB版支持ReplicaSet和Sharding两种部署架构,具备安全审计,时间点备份等多项企业能力。在互联网、物联网、游戏、金融等领域被广泛采用。 云数据库MongoDB版(ApsaraDB for MongoDB)完全兼容MongoDB协议,基于飞天分布式系统和高可靠存储引擎,提供多节点高可用架构、弹性扩容、容灾、备份回滚、性能优化等解决方案。 产品详情: https://www.aliyun.com/product/mongodb
相关文章
|
2月前
|
Web App开发 JavaScript 前端开发
深入浅出Node.js:从零开始构建后端服务
【10月更文挑战第42天】在数字时代的浪潮中,掌握一门后端技术对于开发者来说至关重要。Node.js,作为一种基于Chrome V8引擎的JavaScript运行环境,允许开发者使用JavaScript编写服务器端代码,极大地拓宽了前端开发者的技能边界。本文将从Node.js的基础概念讲起,逐步引导读者理解其事件驱动、非阻塞I/O模型的核心原理,并指导如何在实战中应用这些知识构建高效、可扩展的后端服务。通过深入浅出的方式,我们将一起探索Node.js的魅力和潜力,解锁更多可能。
|
2月前
|
JSON 缓存 JavaScript
深入浅出:使用Node.js构建RESTful API
在这个数字时代,API已成为软件开发的基石之一。本文旨在引导初学者通过Node.js和Express框架快速搭建一个功能完备的RESTful API。我们将从零开始,逐步深入,不仅涉及代码编写,还包括设计原则、最佳实践及调试技巧。无论你是初探后端开发,还是希望扩展你的技术栈,这篇文章都将是你的理想指南。
|
29天前
|
JSON JavaScript 前端开发
深入浅出Node.js:从零开始构建RESTful API
在数字化时代的浪潮中,后端开发作为连接用户与数据的桥梁,扮演着至关重要的角色。本文将引导您步入Node.js的奇妙世界,通过实践操作,掌握如何使用这一强大的JavaScript运行时环境构建高效、可扩展的RESTful API。我们将一同探索Express框架的使用,学习如何设计API端点,处理数据请求,并实现身份验证机制,最终部署我们的成果到云服务器上。无论您是初学者还是有一定基础的开发者,这篇文章都将为您打开一扇通往后端开发深层知识的大门。
44 12
|
2月前
|
JavaScript NoSQL API
深入浅出Node.js:从零开始构建RESTful API
在数字化时代的浪潮中,后端开发如同一座灯塔,指引着数据的海洋。本文将带你航行在Node.js的海域,探索如何从一张白纸到完成一个功能完备的RESTful API。我们将一起学习如何搭建开发环境、设计API结构、处理数据请求与响应,以及实现数据库交互。准备好了吗?启航吧!
|
2月前
|
缓存 负载均衡 JavaScript
构建高效后端服务:Node.js与Express框架实践
在数字化时代的浪潮中,后端服务的重要性不言而喻。本文将通过深入浅出的方式介绍如何利用Node.js及其强大的Express框架来搭建一个高效的后端服务。我们将从零开始,逐步深入,不仅涉及基础的代码编写,更会探讨如何优化性能和处理高并发场景。无论你是后端新手还是希望提高现有技能的开发者,这篇文章都将为你提供宝贵的知识和启示。
|
2月前
|
JavaScript 中间件 关系型数据库
构建高效的后端服务:Node.js 与 Express 的实践指南
在后端开发领域,Node.js 与 Express 的组合因其轻量级和高效性而广受欢迎。本文将深入探讨如何利用这一组合构建高性能的后端服务。我们将从 Node.js 的事件驱动和非阻塞 I/O 模型出发,解释其如何优化网络请求处理。接着,通过 Express 框架的简洁 API,展示如何快速搭建 RESTful API。文章还将涉及中间件的使用,以及如何结合 MySQL 数据库进行数据操作。最后,我们将讨论性能优化技巧,包括异步编程模式和缓存策略,以确保服务的稳定性和扩展性。
|
2月前
|
JSON JavaScript API
深入浅出Node.js:从零开始构建RESTful API
【10月更文挑战第39天】 在数字化时代的浪潮中,API(应用程序编程接口)已成为连接不同软件应用的桥梁。本文将带领读者从零基础出发,逐步深入Node.js的世界,最终实现一个功能完备的RESTful API。通过实践,我们将探索如何利用Node.js的异步特性和强大的生态系统来构建高效、可扩展的服务。准备好迎接代码和概念的碰撞,一起解锁后端开发的新篇章。
|
2月前
|
JavaScript 前端开发 持续交付
构建现代Web应用:Vue.js与Node.js的完美结合
【10月更文挑战第22天】随着互联网技术的快速发展,Web应用已经成为了人们日常生活和工作的重要组成部分。前端技术和后端技术的不断创新,为Web应用的构建提供了更多可能。在本篇文章中,我们将探讨Vue.js和Node.js这两大热门技术如何完美结合,构建现代Web应用。
44 4
|
3月前
|
Web App开发 JavaScript 中间件
构建高效后端服务:Node.js与Express框架的完美结合
【10月更文挑战第21天】本文将引导你走进Node.js和Express框架的世界,探索它们如何共同打造一个高效、可扩展的后端服务。通过深入浅出的解释和实际代码示例,我们将一起理解这一组合的魅力所在,并学习如何利用它们来构建现代Web应用。
71 1
|
2月前
|
JSON JavaScript 前端开发
使用JavaScript和Node.js构建简单的RESTful API
使用JavaScript和Node.js构建简单的RESTful API