[项目] 基于XMPP的Web IM
平台:Windows 7
安装准备
- 下载Openfire
- 下载Strophe.js
- 下载Nginx或者Apache并安装配置:只需一个,作为80端口服务的代理转发服务器(本文没有测试Apache)
安装Openfire(当前版本3.8.2)
普通安装包, 像正常安装软件一样安装就行了
首次需配置, 后面仍可在管理控制台进行更改
goingmerry为我的主机名, 相当于localhost
需要打开OpenFire的http-binding. 具体为登录后台管理界面。
服务器 -> 服务器设置 -> Http绑定(英文界面:Server -> Server Settings -> Http Binding)
- 启用 - 客户端能使用HTTP绑定连接到这台服务器
- Script Syntax - Enabled - Allows BOSH Clients With Limited Access to Connect to the Server
- 端口按默认的。
安装Spark(当前版本2.6.3), 用于测试
下面两图设置是对应的
可在Spark中建立新帐号
Nginx的配置
下载Nginx(当前版本1.5.1): http://nginx.org/en/download.html
打开nginx的配置文件conf/nginx.conf,增加如下行:
location / {
root html;
index index.html index.htm;
}
# 添加的-----Begin-----
# location /http-bind { 原来用这个成功的, 这回用的下面这个成功的..
location ~ ^/http-bind/ {
proxy_pass http://127.0.0.1:7070;
proxy_buffering off;
proxy_redirect off;
proxy_read_timeout 120;
proxy_connect_timeout 120;
tcp_nodelay on;
keepalive_timeout 55;
}
# 添加的-----End-----
启动nginx: 打开命令行,进行nginx目录,输入start nginx
Strophe的示例程序运行
将下载的strophejs文件解压至Ngnix的html文件夹中,在strophejs/examples文件夹中有一些示例文件,修改"*.js"文件中的BOSH_SERVICE
为'/http-bind/'
即可。(这里有个问题,示例程序中使用的jQuery有点过时,加载较慢,手动下载jQuery进行替换,能加快载入速度)
这里以echobot.js为例:
编辑echobot.js,修改第一行为:
var BOSH_SERVICE = '/http-bind/';
在浏览器中打开:http://localhost/strophejs/examples/echobot.html
使用Openfire中的用户进行登录, 点击连接成功后, 如图.
Apache的配置
在httpd.conf中加入下面几行:
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_http_module modules/mod_proxy_http.so
ProxyRequests Off
ProxyPass /http-bind http://127.0.0.1:7070/http-bind/
ProxyPassReverse /http-bind http://127.0.0.1:7070/http-bind/
注:需要apache有编译proxy模块
测试我的项目
我的项目实现了许多常用功能, 包括群聊, 状态设置, 个人名片等..
代码未整理, 整理后再传到GitHub上
与Spark进行通信, 如图
参考文档
- A short tutorial on Echobot by Alfred Westerveld
- Anders Conbere’s guide to BOSH, ejabberd, Firefox, and Strophe
- WEBIM的简单实现