openfire+strophe

其实是关于strophe的使用的,因为openfire那部分我并没有安装,项目过程中是直接访问的已经部署好的服务器了。

 

 

关于使用strophe+ openfire完成 即时通讯,做到及时的信息交互,
主要修改bosh_service  连接的openfire 服务器地址。

内在提供的三个方法:
主要是通过 echobot来调用strophe.js支持包的,

js入口:
$(document).ready(function(){  
 });
就是js 加载的时候完成代码灌入。

0,注册全局变量  
var connection = null;
var BOSH_SERVICE = 'http://203.195.141.57:7070/http-bind/';
var tFlag = false

//tFlag 变量用于判断是否处于连接的状态,便于对连接成功情况=的判断
------------------
1,创建连接:
connection = new Strophe.Connection(BOSH_SERVICE);
------------------
2,进行连接
connection.connect(jid,pass,onConnect);
//参数就是,登陆的用户名,密码,onConnect -- 为连接方法
------------------

------------------
涉及使用的方法
------------------
3,function onConnect(status){

connection.addHandler(onMessage,null,'message',null,null,null);
//设置监听,待接收到消息,进行获取。
connection.send($pres().tree());

}
---------
4,function onMessage(msg){

var to = msg.getAttribute('to');
    
var from = msg.getAttribute('from');
    
var type = msg.getAttribute('type');
    
var elems = msg.getElementsByTagName('body');

if(type=="chat"&& elems.length>0){

var body=elems[0];

var text1 = Strophe.getText(body);
//获得其他人发过来的消息
}

}
----------------------
5,发送消息
if (tFlag == true) {

//消息配置
var reply = $msg({to: 'admin@localhost/Spark 2.7.0', from: connection.jid, type: 'chat'})
                .cnode(Strophe.xmlElement('body',null,$('#textmsg').get(0).value));
                
                connection.send(reply.tree());  //发送消息
            
//log(connection.jid + '>>>>>>>>>>>: ' + $('#textmsg').get(0).value);
        
}

-----------------------
6,断开连接
connection.disconnect();

-----------------------
打印的log日志显示
function log(msg)
{
   
    
$('#log').append('<div></div>').append(document.createTextNode(msg));

}
-----------------------
总的来说,主要是注意连接的用户名,一般
用户名+@localhost/cm等等形式的后缀 ,判断从哪个系统登陆的服务器,
如果仅仅使用用户名登陆,出现匿名的登陆结果。

同时要注意 登陆的人数情况。

利用spark进行登陆验证,
输入用户名,密码
服务器 IP即可

posted on 2015-11-10 20:38  FakerWang  阅读(854)  评论(0编辑  收藏  举报

导航