使用git管理nodejs+socket.io+redis+juicer+waterfall+ubuntu+aws ec2开发网站
服务器:aws ec2 Ubuntu 12.04 (64位)
web服务器:nginx1.3.5
缓存服务器:redis2.4.16
nodeJS: 0.8.8
框架:express 3.0.0
模板渲染:juicer
数据交互:websocket
前端展现:瀑布流
我们使用nodejs来开发一个搜索网站 示例:http://sogego.com 并使用git版本控制工具来管理位于vps上的网站,让我们抛弃ftp工具来上传文件的方式,一键commit到网站目录下。
我们在nodejs服务端render数据到前端,并用juicer来渲染,然后在瀑布流waterfall中使用socket.io来无限制加载数据,用redis做服务器。
一、先讲位于日本东京的服务器aws ec2
使用aws ec2,都说位于美国西海岸的ping值低,事实上比较一下美国西海岸、新加坡、日本到中国的距离就知道了,新加坡网络节点还要绕到意大利再回中国,这个地方的VPS根本没法用,慢的要死,事实上速度最快的要数位于日本东京的ec2机房了,建议大家使用这个,其ping值在上海或是宁波、深圳的地方可以低于80ms,而美国西海岸的ping值都大于250ms,日本东京要快得多。
这和你是不是国人,爱不爱国没有关系,因为在上海到日本有一条海底光缆。
先启动一个Instance,我们使用Ubuntu 12.04
aws ec2默认不让ping。你只需要点左侧Security Groups,再点右侧Inbound的All ICMP 确定就可以ping通了
最后说一下Bitvise SSH ,它比Putty可强大多了,而且还带有sftp功能。你不得不用。
二、VPS Ubuntu 的配置
安装一些常用的比如 g++ make git libssl等
最主要的是在这里配置好git服务器,并同时让git server 自动同步到网站目录下,也就是说,比如我在本地机器win7上 commit了代码到了git server,那么访问http://sogego.com它就是最新修改过的,而且是带有版本号的,这样方便以后出现错误做回滚操作,不使用ftp工具,而是使用aws的 pubkey ,用ssh的方式做commit操作,当然也可以使用sftp。
安装Nginx来做负载均衡,让它指向nodejs的地址 比如:http://localhost:3000
安装redis来做缓存数据库,以后再详细说明在nodejs中使用redis的操作。
三、程序开发
推荐webstorm开发工具,带有git和nodejs的语法支持,如果你非要用Notepad++,我个人只能说你是个二。
我们在nodejs中使用最新的express 3框架,它与express 2有了一些改变
我们不使用jade这个模板,原因是什么,自己去想吧,个人觉得与html相距太大,不习惯,
而是使用juicer,它是一个极限渲染模板,其写法与速度你自己试了就不会再用其它的
我已和juicer的作者沟通多次解决bug和添加功能,目前版本号是0.6.0.使用完全没有问题
我们安装一个npm install jquery来分析抓取到的网页数据
我们还要安装一个npm install iconv-lite它比iconv要快一些,用来解决非utf8编码,大多的国内网站还在使用gb2312的编码。
我们再来安装一个npm install forever来永久启动你的nodejs程序,它的操作基本是forever start 你的nodejs文件名
forever stop 你的nodejs文件名
forever list
为了开方的方便还来一个npm install node-dev,使用方法node-dev 你的nodejs文件名
这样当我们改变了nodejs,就不用手动重启,尤其是配合webstorm一起使用,因为webstorm不需要按crtl+s来保存,而是它自己即时保存,这样你的程序就会时实重启。
我们在后台使用了redis那就再安装一个npm install redis来连接redis数据库
我们还要使用websocket协议,而不是用ajax请求。所以再来一个npm install socket.io
最后注意当我们使用nodejs 的Crypto模块时用到了base64,注意base64的 + 问题转为空格
分享到:
相关推荐
使用 Laravel + Redis + Node.js + Socket.io 进行实时聊天Laravel 实时聊天 用 Laravel 4.2 + Redis + Node.js + Socket.io 编写的实时聊天示例。嗯,这是 Laravel 4.2 + Redis Node.js + Socket.io 中的实时聊天...
使用Laravel + NodeJS + Socket.io进行实时聊天 要求 : Laravel 5.1 MySQL Redis Node.js Socket.io库 如何安装 步骤1:克隆此仓库: $ git clone 步骤2:安装作曲家软件包 $ cd Chat_server / server $ ...
使用 Node.js、Socket.io、Express 和 Redis 构建的简单聊天(+使用 Bootstrap 构建的客户端)简易聊天构建于服务器端 Node.js、Socket.io、Express、Redis客户端 HTML5 Boilerplate、Bootstrap、Handlebars 和 ...
morphDash是使用NodeJS + Socket.io构建的IOT仪表板。 该dashbaord主要用作csi2项目的显示UI,这是Rasberry Pi Model B +( )的python接口程序/解析器脚本。 运行morphDash 克隆回购: git clone ...
聊天室 使用 Node.js、Express、Mongoose、Socket.io、Passport 和 Redis 构建的实时聊天应用程序。指数演示特征安装工作原理支持贡献执照演示查看演示特征使用 Express 作为应用程序框架。使用express-session包...
总结来说,这个基于Node.js+Vue的聊天系统源码涵盖了Web开发中的多个重要概念和技术,包括实时通信、前后端分离、状态管理、数据库操作以及现代前端构建工具的使用,对于学习和实践全栈开发有着很高的价值。...
简版聊天室NodeJs + Socket.io + Express + MongoDB + AngularJs + AngularMaterial 构建的简版聊天室** CheckOut and Run:**首先 ,确认你的系统安装了,和 。1,clone codegit clone ...
标题 "senha-api: NodeJS + socket.io中的API" 指的是一个使用Node.js和socket.io构建的密码管理API项目。这个项目可能涉及到实时通信、Web应用开发以及API设计等核心概念。 首先,Node.js是一个基于Chrome V8引擎...
nodejs + socket.io的多人在线聊天后台系统,前台项目地址: 项目运行: git clone https://github.com/bailicangdu/node-weixin cd node-weixin npm install npm run dev (需先开启mongodb) 访问: ...
Nodejs+socket.io 聊天系统 Nodejs+socket.io 服务器监控 ##Nodejs+express4.x+boostrap web开发 项目地址: 详细参考: ##Nodejs cluster 多核处理模块cluster 项目地址: 详细参考: ##Nodejs+socket.io 聊天系统 ...
这是一个示例协作和交互式实时 node.js 应用程序,带有 Socket.io、Express 和 Jade。 技术与要求 这些将使用 npm 安装,只需执行 npm install 在您的项目目录中。 安装、构建、运行、测试和观察 # Install nodejs...
git下载的最新的socket.io,已通过ant打包成jar,https://github.com/Gottox/socket.io-java-client, 大家也可以通过这个链接自己下载
对于完整的示例,还可以查看 [webserver] ( ) 前端,并使用 NodeJS、Socket.io 和 Google Charts 实时体验。堆Nodejs v0.12 快递 v3.20 Socket.io Axon 库 - 参见云中的 Redis 数据库 - 请参阅和先决条件节点云上的...
使用git clone git://github.com/joe-zim-javascript-blog/Socket.IO-Test.git将这个存储git clone git://github.com/joe-zim-javascript-blog/Socket.IO-Test.git到您的计算机上 导航到该存储库,然后键入npm start...
socket.io-cpp-client-sample Socket.IO C++ 客户端示例。 该程序将本机客户端外壳上的命令结果提供给 Web 浏览器。 这个程序在有解释。 如何使用。 编译本机客户端。 $ git clone ...
2. **Socket.IO**: Socket.IO 是一个为实时应用而设计的库,它通过WebSocket协议实现实时双向通信。在KeFu系统中,Socket.IO起到了关键作用,允许客服和客户之间进行实时聊天,无需刷新页面。它支持多种传输方式,如...
使用TypeScript的Socket.io聊天示例 该存储库包含使用TypeScript语言的服务器和客户端代码 博客文章 阅读有关该项目的详细信息的博客文章: 现场演示 尝试现场演示: : 支持这个项目 Star GitHub存储库 :white_...
express-socket.io-run 最简单的设置是pure Express + pure Socket.io。 为什么? 这是供个人使用的简单模板(也许是代码段?),仅用于最常用的模块。 检查package.json。 用法 安装 git clone ...
RGB LED 控制与 Node.JS + socket.io + Johnny-5 + Arduino 在看过 Nodebr São Paulo 的 Meetup,更具体地说是 Paulo Pires 和 Alan 的演讲后,我决定清理我的 Arduino 并测试 Jhonny-Five,并且已经借此机会下载 ...
前言之前使用JS + HTML5 + CSS3 + Node.js + Express.js + Mongodb开发过一个博客网站,也部署了,但当时刚开始搞前端,写的不是很满意。后来就废弃了。 Hexo + GitHub Pages部署了一个博客,但自由度太低。所以最后...