Private Chat Room in Ruby on Rails 3.0 的本地尝试和问题解决 兰猫

相关知识总结

Juggernaut 

Juggernaut gives you a realtime connection between your servers and client browsers. You can literally push data to clients using your web application, which lets you do awesome things like multiplayer gaming, chat, group collaboration and more.

Juggernaut is built on top of Node.js and is super simple and easy to get going.


Node.JS

Node.js开源项目致力于提供一套编写高性能并发Web应用的JavaScript框架,完全事件驱动IO,基于V8引擎,很适合中间件和WEB项目开发。

特点:

* 单线程事件模型,简单高效
* 基于活跃的高性能V8引擎
* 社区活跃,组件丰富

Redis

是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。
持久化
通常,Redis将数据存储于内存中,或被配置为使用虚拟内存。[3]通过两种方式可以实现数据持久化:使用截图的方式,将内存中的数据不断写入磁盘;或使用类似MySQL的日志方式,记录每次更新的日志。前者性能较高,但是可能会引起一定程度的数据丢失;后者相反。
主从同步
Redis支持将数据同步到多台从库上,这种特性对提高读取性能非常有益。
性能
相比需要依赖磁盘记录每个更新的数据库,基于内存的特性无疑给Redis带来了非常优秀的性能。读写操作之间有显著的性能差异。

搞了两天, 才把人家写的一个chat room的例子跑起来. 不废话了, 先list环境

1. ubuntu 11.04

2. redis-server 2.2.2

http://redis.io/download
启动命令 redis-server

3. nodejs  0.4.12   (这里的版本需要跟npm有关系, 如果用最新的node, 下面你要发疯的, 装不起来npm:) )

https://github.com/joyent/node
https://github.com/joyent/node/wiki/Installation
验证命令 node-repl,  quit with ctrl+D

4. npm 1.0.30  需要npm来安装juggernaut  (npm 1.0.30 Required: {"node":">= 0.4.1 < 0.5.0"})

https://github.com/isaacs/npm

5. juggernaut  

https://github.com/maccman/juggernaut.git
启动命令 juggernaut
还需要安装 相应的gem包
sudo gem install juggernaut

 

差不多了, 就需要上面这些, 编译安装无非就是以下几个命令, 具体的操作给出的帮助连接里面都有

./config
make
sudo make install
make test

安装过程中出现的问题解决如下:

1. node 安装好了之后启动报错

axconfig: port 1 not active
axconfig: port 2 not active

解决方法

执行以下命令后, 重新编译源代码安装
sudo apt-get remove –purge node
sudo apt-get clean

2. npm 命令总是弹出文本

弹出文本
*Title:* Non-Parametric Mapping
Chris Rorden's NPM  :: 2 November 2010 (Debian) CacheMB = 512; Threads used = 4

终端显示

ish@ubuntu:~$ npm install express
[WARNING] Out of OEM specific VK codes, changing to unassigned
[WARNING] Out of unassigned VK codes, assigning $FF

原因, 你的机器上有个npm的程序重名了

解决方法

在软件中心卸载这个重名的程序, 然后下载npm源文件编译安装

3. 安装npm的时候报node版本过高

npm Required: {"node":">= 0.4.1 < 0.5.0"}

解决方法

重新下载旧版本的node编译安装

安装就绪后,就可以来体验juggernaut带来的chat room了

按照http://www.golygon.com/2010/12/private-chat-room-in-ruby-on-rails-3-0/中的提示,下载现成的demo 

git clone git://github.com/prabgupt/chatclient.git --recursive
cd chatclient
rails s
URL 中测试, 发送信息
localhost:3000/chat/channel1
localhost:3000/chat/channel2

  

  

  

  

  

原文地址:https://www.cnblogs.com/ilazysoft/p/2194617.html