‘壹’ 基于Node.JS, MongoDB的开源IM聊天框架Spika
发现一款强大的开源聊天框架 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版,下次再尝试吧:)
‘贰’ 修改node_mole中的包,却不受重新安装的影响
修改别人的源码往往有这几个方式:
显而易见,上面这两种方法既不优雅,也不可靠。作为程序员的我们岂能被这事儿给难住,开源社区早已给我们准备好了解决方案:patch-package [1]
通过cra开启一个项目
给项目@alifd/next(ui库)、patch-package、postinstall-postinstall(使用yarn安装时需要安装,npm无需安装此依赖)
给 package.json文件中添加脚本命令( 非常重要,无论我们使用yarn还是npm,在整体安装结束后都会自动执行该命令,对node_moles中的包打补丁 )
我们引入组件button,并查看组件当前结构
我们去node_mole中修改button源码
我们在看看页面情况(如果没有效果的话,可以重启一下服务 )
<figcaption mp-original-font-size="14" mp-original-line-height="22.399999618530273" style="margin: 5px 0px 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; word-wrap: break-word !important; text-align: center; color: rgb(221, 165, 45); font-size: 14px; line-height: 22.399999618530273px;">result.png</figcaption>
修改完并且也生效了,我们就要开始打补丁了,运行命令 yarn patch-package package-name
成功后你会看到根目录多了一个patches文件夹,里面包含了你修改的npm包的patch文件。点开可以很清楚的看到你都做了哪些修改。 文件名中的1.22.21就是依赖包的版本号,表示这个补丁只对1.22.21版本的插件生效
删除node_mole并重新安装
依赖包安装完成后可以在命令行中看到补丁被应用(倒数后5行)
yarn start 重新启动,查看审查元素,依旧是a标签!