阿里使用nodejs的场景

JavaScript012

阿里使用nodejs的场景,第1张

阿里使用nodejs的场景有很多。实时应用:如在线聊天,实时通知推送等等(如socket.io)分布式应用:通过高效的并行I/O使用已有的数据。工具类应用:海量的工具,小到前端压缩部署(如grunt),大到桌面图形界面应用程序。游戏类应用:游戏领域对实时和并发有很高的要求(如网易的pomelo框架),利用稳定接口提升Web渲染能力。

发现一款强大的开源聊天框架 Spika 。 它不仅提供iOS,Android,Web端的源码,还有后端的源码,都是开源的。Spika的提供者是来自克罗地亚的一家移动APP公司 Clover Studio 感谢他们的团队把这个项目从头到脚都开源了。

相对于传统的LAMP(LINUX, APACHE, MYSQL,PHP), Node.js + MongoDB 是一种比较新的后端组合。Google自己的聊天平台Google Messaging Cloud(GMC)就是基于Node.JS+MongoDB实现的。

废话不多说,开始使用吧!

安装服务器端

1.环境配置。 官网 上提供的是Ubuntu14.04版的配置过程。见下图:

由于我用的服务器是Amazon Linux,用yum来安装。

git clone git://github.com/nodejs/node.git

cd node

git checkout v4.4.7

./configure

make

sudo make install

sudo su

vi /etc/sudoers

:/usr/local/bin```

3.安装imagemagick

5.安装Spika

6.安装gulp

sudo npm install gulp -g

7.编写配置文件

把Config.host和port的值设为自己服务器的hostname和port, 把Config.chatDatabaseUrl的值改为mongoDB的路径。最好用1024以上的port。mongoDB如果没有修改安全选项的话,最好用127.0.0.1。

8 . 运行项目

这时候可能会报错

找不到jsdoc。 解决方法:

然后再次运行

开启服务器

node src/server/main.js

这个时候用浏览器登陆

主机号:端口号/spika

就可以开始聊天啦!

除了web版,它还有android和ios版,下次再尝试吧:)

这种即时聊天的需要常连接来实现,比较典型的有php的Workerman和nodejs的socket.io,

原理是这样的。以socket.io为例,访客端发送消息给nodejs[room(房间可以是域名加公司编号),uid(访客id可以是浏览器内核或者代理加ip加操作系统生成),workerid(数据库对应客服的id),type(消息类型 可以是sendmsg,getmsg。。。)],监听到事件后在房间内广播进行推送给对应的workerid进行渲染显示在页面。在发送信息的同时写入到数据库。

nodejs就是一个传话的人但是24小时监听的,逻辑基本都在nodejs中处理。