这是套基于XMPP解决方案的即时通讯系统,支持几万的并发数,支持语音视频等。
上年测试的时候,发现局域网内可以直接使用语音视频;但是真的放到学校部署的时候发现,在多个校区并联、不同局域网之间都无法实现语音视频,提示NOT FOUND错误什么的。非常懊恼!

后来也没去研究这个东西,自己写了个语音视频程序作为这套系统的补充。

前几天突然想到:RED5之所以出错,是因为找不到连接语音视频地址的服务器。也就是URL路径没有直接关联到服务器。

如服务器域名为:hello.vicp.net
而在OPENFIR初始设置域名为:BIG

那么SPARK端使用RED5进行语音视频的时候,就直接指向了BIG的域名相关路径。结果肯定不行了。

而且也需要在OPENFIRE端绑定HTTP到8080端口,直接指向RED5的端口。

概括一下全新安装这套方案时候,避免语音视频无法实现的注意点:

1、在OPENFIRE填写的域名或者IP地址必须跟服务器的域名或者IP地址一致,而不是随意填写,也不是自动填写。

2、在OPENFIRE端开启HTTP绑定到8080端口

3、将RED5插件拷贝到插件目录,重启OPENFIRE。RED5的初始参数不要修改。

4、接触对8080端口的*,防火墙进行相关解锁(如果你的服务器有防火墙拦截干扰的话)

如果你已经犯了错误,将OPENFIRE的域名填写错误,或者填写一些任意字符,或者任由其自动取计算机名为域名,我也对此琢磨了以下解决办法:

1、备份所有“embedded-db”目录数据,要求目录一份,RAR压缩一份,以防万一。

2、删除全部OPENFIRE程序和OPENFIRE目录

3、重装OPENFIRE

4、设定域名为您的服务器的真实域名,或者真实IP,这点不要再犯错误了。

5、拷贝插件等到目录

6、修改备份的“embedded-db”目录下的“openfire.script”文件,用写字板打开,搜索原先的错误域名或者IP地址。全字匹配替换为新的正确域名或者IPD地址,保存。

7、将修改好的“openfire.script”文件拷贝到OPENFIRE的“embedded-db”目录下替换原始文件。

8、重新启动OPENFIRE,进入设置,配置好各个选项,然后重新启动OPENFIRE。确定域名为真实的域名或者IP地址才行。

这样做是有理论和实际根据的,经过我的排查,发现“openfire.script”是储存用户数据资料的一个文件。里面包含了所有用户的密码和账户信息。只有把里面的错误信息替换成正确信息,才能移植数据库。

而新的域名是采用RSA算法跟计算机名进行匹配的,直接修改“embedded-db”目录下的所有文件的错误域名关键字为正确域名关键字,是没有用的。因为你要自行计算和修改RSA值,才能让它匹配计算机。

所以我们干脆从头再来,直接设定好真实域名,让它自动计算RSA进行标记。然后再移植数据库,这样就完美了。

呵呵

这就是我今天最大的收获,哈哈,我想很多人也跟我一样碰到过这样的问题。网上也没有人能解答,我到OPENFIRE的官方网站,找官方用英语问过这个语音视频架设问题,他们其实也不太清楚。

分类:

技术点:

相关文章: