用openfire+strophe搭建WEB IM平台

用openfire+strophe搭建WEB IM平台 - nomousewch的专栏 - 博客频道 - CSDN.NET

  • 准备
  1. openfire服务器(http://www.igniterealtime.org)——IM Server
  2. ngnix服务器(http://nginx.org)——代理和HTTP Server
  3. strophe库(http://strophe.im/)——JS客户端
  • 安装和配置openfire

openfire的安装见本人博客,安装时配置domain为172.17.125.161(注意除非PC配置了域名,不然最好domain配置为IP,方便客户端访问),后登录管理控制台,服务器》服务器设置》HTTP绑定,默认启用7070端口作为HTTP绑定端口。

  • 安装和配置nginx

我安装的是windows版,直接解压到本地目录,打开conf目录下nginx.conf,修改server节点为如下:

[html] view plaincopyprint?

  1. server {
  2. listen       80;
  3. server_name  172.17.125.161;
  4. #charset koi8-r;
  5. #access_log  logs/host.access.log  main;
  6. location / {
  7. root   html;
  8. index  index.html index.htm;
  9. }
  10. location /http-bind {
  11. proxy_pass http://172.17.125.161:7070/http-bind/;
  12. proxy_redirect off;
  13. proxy_read_timeout 120;
  14. proxy_connect_timeout 120;
  15. }
  16. #error_page  404              /404.html;
  17. # redirect server error pages to the static page /50x.html
  18. #
  19. error_page   500 502 503 504  /50x.html;
  20. location = /50x.html {
  21. root   html;
  22. }
  23. # proxy the PHP scripts to Apache listening on 127.0.0.1:80
  24. #
  25. #location ~ \.php$Snbsp;{
  26. #    proxy_pass   http://127.0.0.1;
  27. #}
  28. # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
  29. #
  30. #location ~ \.php$Snbsp;{
  31. #    root           html;
  32. #    fastcgi_pass   127.0.0.1:9000;
  33. #    fastcgi_index  index.php;
  34. #    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
  35. #    include        fastcgi_params;
  36. #}
  37. # deny access to .htaccess files, if Apache‘s document root
  38. # concurs with nginx‘s one
  39. #
  40. #location ~ /\.ht {
  41. #    deny  all;
  42. #}
  43. }
server {
        listen       80;
        server_name  172.17.125.161;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
            root   html;
            index  index.html index.htm;
        }

	location /http-bind {
            proxy_pass http://172.17.125.161:7070/http-bind/;
            proxy_redirect off;
            proxy_read_timeout 120;
            proxy_connect_timeout 120;

       }

        #error_page  404              /404.html;

        # redirect server error pages to the static page /50x.html
        #
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }

        # proxy the PHP scripts to Apache listening on 127.0.0.1:80
        #
        #location ~ \.php$ {
        #    proxy_pass   http://127.0.0.1;
        #}

        # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
        #
        #location ~ \.php$ {
        #    root           html;
        #    fastcgi_pass   127.0.0.1:9000;
        #    fastcgi_index  index.php;
        #    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
        #    include        fastcgi_params;
        #}

        # deny access to .htaccess files, if Apache‘s document root
        # concurs with nginx‘s one
        #
        #location ~ /\.ht {
        #    deny  all;
        #}
    }

然后双击nginx.exe,在任务管理器下看到两个nginx.exe进程说明启动成功。

  • 安装strophe

下载strophejs-1.0.2.zip包,直接解压至nginx目录下的html文件夹内。

  • 测试连接

进入strophejs-1.0.2解压目录,打开examples/basic.js,修改

[html] view plaincopyprint?

  1. var BOSH_SERVICE = ‘http://im/http-bind/‘
var BOSH_SERVICE = ‘http://im/http-bind/‘

为:

[html] view plaincopyprint?

  1. var BOSH_SERVICE = ‘http://172.17.125.161/http-bind/‘
var BOSH_SERVICE = ‘http://172.17.125.161/http-bind/‘

打开浏览器,访问 http://172.17.125.161/strophejs-1.0.2/examples/basic.html,输入完整的JID(例如:[email protected])和密码,点击connect,出现下列输入说明登录成功:

[html] view plaincopyprint?

  1. SENT: <body rid=‘4218693533‘ xmlns=‘http://jabber.org/protocol/httpbind‘ to=‘172.17.125.161‘ xml:lang=‘en‘ wait=‘10‘ hold=‘1‘ content=‘text/xml; charset=utf-8‘ ver=‘1.6‘ xmpp:version=‘1.0‘ xmlns:xmpp=‘urn:xmpp:xbosh‘/>
  2. RECV: <body xmlns=‘http://jabber.org/protocol/httpbind‘ xmlns:stream=‘http://etherx.jabber.org/streams‘ authid=‘74ec6e82‘ sid=‘74ec6e82‘ secure=‘true‘ requests=‘2‘ inactivity=‘30‘ polling=‘0‘ wait=‘10‘ hold=‘1‘ ack=‘4218693533‘ maxpause=‘300‘ ver=‘1.6‘><stream:features><mechanisms xmlns=‘urn:ietf:params:xml:ns:xmpp-sasl‘><mechanism>DIGEST-MD5</mechanism><mechanism>PLAIN</mechanism><mechanism>ANONYMOUS</mechanism><mechanism>CRAM-MD5</mechanism></mechanisms><compression xmlns=‘http://jabber.org/features/compress‘><method>zlib</method></compression><bind xmlns=‘urn:ietf:params:xml:ns:xmpp-bind‘/><session xmlns=‘urn:ietf:params:xml:ns:xmpp-session‘/></stream:features></body>
  3. SENT: <body rid=‘4218693534‘ xmlns=‘http://jabber.org/protocol/httpbind‘ sid=‘74ec6e82‘><auth xmlns=‘urn:ietf:params:xml:ns:xmpp-sasl‘ mechanism=‘DIGEST-MD5‘/></body>
  4. SENT: <body rid=‘4218693534‘ xmlns=‘http://jabber.org/protocol/httpbind‘ sid=‘74ec6e82‘><auth xmlns=‘urn:ietf:params:xml:ns:xmpp-sasl‘ mechanism=‘DIGEST-MD5‘/></body>
  5. SENT: <body rid=‘4218693534‘ xmlns=‘http://jabber.org/protocol/httpbind‘ sid=‘74ec6e82‘><auth xmlns=‘urn:ietf:params:xml:ns:xmpp-sasl‘ mechanism=‘DIGEST-MD5‘/></body>
SENT: <body rid=‘4218693533‘ xmlns=‘http://jabber.org/protocol/httpbind‘ to=‘172.17.125.161‘ xml:lang=‘en‘ wait=‘10‘ hold=‘1‘ content=‘text/xml; charset=utf-8‘ ver=‘1.6‘ xmpp:version=‘1.0‘ xmlns:xmpp=‘urn:xmpp:xbosh‘/>
RECV: <body xmlns=‘http://jabber.org/protocol/httpbind‘ xmlns:stream=‘http://etherx.jabber.org/streams‘ authid=‘74ec6e82‘ sid=‘74ec6e82‘ secure=‘true‘ requests=‘2‘ inactivity=‘30‘ polling=‘0‘ wait=‘10‘ hold=‘1‘ ack=‘4218693533‘ maxpause=‘300‘ ver=‘1.6‘><stream:features><mechanisms xmlns=‘urn:ietf:params:xml:ns:xmpp-sasl‘><mechanism>DIGEST-MD5</mechanism><mechanism>PLAIN</mechanism><mechanism>ANONYMOUS</mechanism><mechanism>CRAM-MD5</mechanism></mechanisms><compression xmlns=‘http://jabber.org/features/compress‘><method>zlib</method></compression><bind xmlns=‘urn:ietf:params:xml:ns:xmpp-bind‘/><session xmlns=‘urn:ietf:params:xml:ns:xmpp-session‘/></stream:features></body>
SENT: <body rid=‘4218693534‘ xmlns=‘http://jabber.org/protocol/httpbind‘ sid=‘74ec6e82‘><auth xmlns=‘urn:ietf:params:xml:ns:xmpp-sasl‘ mechanism=‘DIGEST-MD5‘/></body>
SENT: <body rid=‘4218693534‘ xmlns=‘http://jabber.org/protocol/httpbind‘ sid=‘74ec6e82‘><auth xmlns=‘urn:ietf:params:xml:ns:xmpp-sasl‘ mechanism=‘DIGEST-MD5‘/></body>
SENT: <body rid=‘4218693534‘ xmlns=‘http://jabber.org/protocol/httpbind‘ sid=‘74ec6e82‘><auth xmlns=‘urn:ietf:params:xml:ns:xmpp-sasl‘ mechanism=‘DIGEST-MD5‘/></body>
时间: 2024-11-01 12:25:21

用openfire+strophe搭建WEB IM平台的相关文章

网络安全系列之三 搭建Web渗透平台(ASP)

在学习或是讲授网络安全方面的课程时,最大的麻烦就是如何设置各种实验.若是找真实的网站练手,一方面有漏洞的网站已经很难找了,另一方面即使能找到存在漏洞的网站,那也存在法律方面的风险,所以最好的途径还是自己来搭建实验环境. 在实验环境中,系统平台当然还是选择VMWare+Win2003(Win2003是进行网络安全方面实验的首选操作系统):困难在于渗透平台怎么解决?渗透平台要包括Web服务器和漏洞网站两部分.经过在51cto一番翻箱倒柜之后,终于找到了解决的方法.在这里先介绍如何搭建一个ASP的We

配置Tomcat管理迪士尼网站平台开发和配置虚拟机以及搭建web站点

1.用记迪士尼网站平台开发 haozbbs.comQ1446595067 事本打开Tomcat的目录下的conf文件中的"tomcat-user.xml". 2.写入以下代码 <?xml version=1.0 encoding="UTF-8"?> <tomcat-users> <role rolename="manager-gui"/> <user username="ab123"p

LVS-DR+keepalived 搭建web高可用负载均衡

实验环境 redhat6.5 2.6.32-431.el6.x86_64 keepalived-1.2.16版本 ipvsadm-1.26-2.el6.x86_64 所有的虚拟机  都  关闭防火墙和selinux  配置好了本地yum源 搭建要求是对LVS-DR模式的原理熟悉,先配置好LVS-DR所需的环境.这里的环境是配置VIP DIP DIP 在同一个网段,并在realserver的lo接口上做好了arp抑制.具体见后面的脚本 当keepalived和LVS结合时,注意不需要在direct

【译文】用Spring Cloud和Docker搭建微服务平台

by Kenny Bastani Sunday, July 12, 2015 转自:http://www.kennybastani.com/2015/07/spring-cloud-docker-microservices.html This blog series will introduce you to some of the foundational concepts of building a microservice-based platform using Spring Cloud

美图WEB开放平台环境配置

平台环境配置 1.1.设置crossdomain.xml 下载crossdomain.xml文件,把解压出来的crossdomain.xml文件放在您保存图片或图片来源的服务器根目录下,比如: http://example.com.cn,那么crossdomain.xml的路径为:http://example.com.cn/crossdomain.xml.需要注意的是crossdomain.xml必须部署于站点根目录下才有效, crossdomain.xml的目的是授权来自美图域下的flash向

Java EE 学习(5):IDEA + maven + spring 搭建 web(1)

参考:http://www.cnblogs.com/lonelyxmas/p/5397422.html http://www.ctolib.com/docs-IntelliJ-IDEA-c--159047.html 孔老师的<SpringMVC视频教程> 记录: 本节主要完成 使用 maven 管理 spring + 项目 包,搭建 maven+spring 的 web 项目平台. 前提: 已安装并配置好 - Intellij IDEA 16.3.5 Ultimate - JDK 1.8.0_

使用python一步一步搭建微信公众平台(一)

最近无聊,想玩玩微信的公众平台,后来发现乐趣无穷啊~ 使用的工具,python 新浪SAE平台,微信的公众平台 你需要先在微信的公众平台与新浪SAE平台上各种注册,微信平台注册的时候需要你拍张手持身份证的照片,还有几天的审核期 微信公众平台:http://mp.weixin.qq.com 新浪SAE:http://sae.sina.com.cn/ 等待微信公众审核通过后,登录公众平台后,点击高级功能.将会看到需要提供一个接入信息: 微信接口配置 那么我们需要一个网址作为接口(这时就需要SAE上搭

linux下利用elk+redis 搭建日志分析平台教程

linux下利用elk+redis 搭建日志分析平台教程 http://www.alliedjeep.com/18084.htm elk 日志分析+redis数据库可以创建一个不错的日志分析平台了,下面我们来看一篇在linux下利用elk+redis 搭建日志分析平台教程,希望例子对各位有帮助. 这个是最新的elk+redis搭建日志分析平台,今年时间是2015年9月11日. Elk分别为 elasticsearch,logstash, kibana 官网为:https://www.elasti

Win2008搭建Web和FTP服务

介绍 本篇博客介绍的是在UCloud的云主机上通过IIS搭建Web和FTP服务器的过程,这里的Web服务器只支持最简单的html页面,如果需要其他支持,请自行安装所需软件. 创建和连接主机 1.创建win2008的主机 在UCloud平台上创建win2008主机的过程和创建其他系统主机过程一样,但是要注意的是,默认的镜像不是Windows系统的,所以在安装过程中需要注意选择下Windows系统的镜像.这里使用的是Win2008 R2 64bit的一个镜像系统. 2.使用mstsc连接管理主机 U