Candy是基于JavaScript的多用户通信Web客户端,可用于搭建互联网和局域网的聊天系统,它最大的特点是多用户、实时、简单,以下是官网对Candy的介绍,你还可以去 Candy的主页体验一下它的Demo。
- Focused on real-time multi-user chatting → Screenshot & Demo
- Easy to configure, easy to run, easy to use → Setup & Usage
- Highly customizable → Plugins & Event Hooks
- 100% well-documented JavaScript source code → API Documentation
- Built for Jabber (XMPP), using famous technologies → Under The Hood
- Used and approved in a productive environment with up to 400 concurrent users → About Candy
- Works with all major web browsers including IE7
说到部署自己的聊天服务,最简单的方法是在服务器上安装Openfire或ejabberd,就可以在其他电脑上使用Spark或者Pidgin进行聊天。Candy的好处是不需要Spark或Pidgin等客户端,在服务器端部署好HTTP服务,那么在其他计算机上只需要打开网页就可以聊天了,这也就是为什么Candy的部署需要Apache或者其他HTTP服务的支持了。
本文介绍如何在Windows上部署Candy,在开始之前,需要下载: XAMPP、 Openfire和 Candy。其中XAMPP包含了Apache和MySQL等。
目前,XAMPP最新版本是1.8.2,点「 此链接」可以直接下载;Openfire版本是3.8.2,点「 此链接」可以直接下载;Candy版本是1.0.9,点「 此链接」可以直接下载。
部署步骤
1.安装xampp
① 在选择要安装组件步骤时,Apache和PHP是默认选中的,如果想在Candy中使用MySQL数据库而不是Candy的内嵌数据库,需要勾选上MySQL和phpMyAdmin。
② 在XAMPP控制面板,点击Apache的Config => httpd.conf,依次去掉下面三行前面的「#」来启用Apache的mod_rewrite、mod_proxy和mod_proxy_http模块。
1
2
3
|
LoadModule rewrite_module modules/mod_rewrite.so
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_http_module modules/mod_proxy_http.so
|
2.配置MySQL
如果没有安装MySQL或者不想使用MySQL,请跳过这一步。
① 在XAMPP控制面板启动Apache和MySQL的服务,点击Apache的Admin,选择语言后点击左侧的「安全」,如下图所示,可以看到目前服务器的安全状态。
XAMPP安全 |
点击图中红框标记的链接,为MySQL的root账号添加密码(同时也可以为XAMPP添加具有访问权限的账号和密码)。
② 在XAMPP控制面板点击MySQL的「Admin」,使用root账号和刚刚设置的root密码登陆,创建名为「candy」的数据库,当然,数据库的名字是自定义的,也可以用自己喜欢易记的名字。这个名字在Openfire初始化的时候会用到。
3.安装并初始化Openfire
① 点击「Launch Admin」,选择语言(这里选择了中文),下一步是服务器设置,如下图所示,域默认的是计算机的主机名,可以保持默认,也可以修改成其他,这里改为「localhost」,可以把鼠标移到相应的「问号」图标上查看设置的说明。
Openfire服务器设置 |
② 点击「继续」进入数据库设置,如下图所示,这里选择「标准数据库连接」。如果没有安装MySQL或其他数据库,那就只能选择「嵌入的数据库」了,设置更方便。
Openfire数据库设置 |
③ 点击「继续」,在「数据驱动选项」中选择「MySQL」,把「数据库URL」中的「[host-name]」改为「localhost」,把「[database-name]」改为「candy」。如下图所示:
Openfire的MySQL数据库设置 |
④ 点击「继续」,不用更改「特性设置」,点击「继续」,为管理员账户设置电子邮件和密码,点击「继续」安装完成。在Openfire管理框中先「Stop」,再「Start」重启Openfire。点击「Launch Admin」接下来就要使用「admin」账号和刚刚设置的密码登陆到管理控制台了。
4.设置Openfire
使用「admin」登陆Openfire管理控制台之后,需要做如下设置:
① 服务器 => 服务器设置 => HTTP绑定,按下图设置,如果你更改了端口号,那么在后续的Candy设置中也要做相应的更改。
Openfire的HTTP绑定设置 |
② 分组聊天 => 房间管理员 => 创建新房间,记住创建的房间标识,这里取名为「Default」,如下图所示:
Openfire创建新房间 |
③ 插件 => 有效的插件,安装Client Control插件。
④ 服务器 => 客户端管理Client Management => 分组聊天书签 => 增加分组对话书签,分组对话地址是「[email protected]」,其中「Default」是在②中新建房间的名字,localhost是在步骤3的①中设置的域名字。
勾选「所有用户」和「自动加入」,这样登陆聊天服务器的所有人都会自动加入到「Default」这个房间。
5.配置Candy
① 解压candy,为方便起见,把解压得到的文件夹重命名为「candy」,并放到Apache web目录xampp/htdocs下,把htdocs/candy/example/目录下的htaccess和index.html复制到htdocs/candy/目录下。
② 修改htacess,把最后一行中的「5280」改为「7070」。这是因为在步骤4的①中,我们设置Openfire的HTTP绑定端口为「7070」,如果你自己改成了其他端口号,这里就把「5280」改为你定义的端口号。
③ 把htaccess重命名为.htaccess。注意:在Windows中直接改名字不允许以「.」开头,可以在命令行下使用rename命令完成重命名,如下图所示:
重命名htaccess为.htaccess |
④ 修改index.html,把5处「..」都改为「.」(可以使用替换工具),
然后把
1
2
3
4
5
6
7
8
|
$(document).ready(
function
() {
Candy.init(
'http-bind/'
, {
core: { debug:
false
},
view: { resources:
'./res/'
}
});
Candy.Core.connect();
});
|
1
2
3
4
5
6
7
8
|
$(document).ready(
function
() {
Candy.init(
'http-bind/'
, {
view: { resources:
'./res/'
, language:
'cn'
}
});
Candy.Core.connect(
'localhost'
);
});
|
6.最后,修改Apache的「httpd.conf」配置文件,查找「htdocs」,在其后添加「/candy」,修改后的两行最终效果为:
1
2
|
DocumentRoot
"D:/xampp/htdocs/candy"
|
Candy登陆界面 |
另外需要说明的是,如果想让Candy支持SSL加密连接,需要修改Apache的「httpd-ssl.conf」配置文件:
把「DocumentRoot "D:/xampp/htdocs"」修改为「DocumentRoot "D:/xampp/htdocs/candy"」,
把「ServerName www.example.com:443」修改为「ServerName localhost:443」或「ServerName 『你的服务器IP地址』:443」。
参考:
http://candy-chat.github.io/candy/
https://github.com/candy-chat/candy/wiki/Installing-a-Jabber-server
https://zh.wikipedia.org/zh-cn/XMPP
http://www.yuexuan.org/?p=1570