gloox:连接服务器和接收消息

参考 http://camaya.net/gloox/example

创建一个win32控制台程序
为方便起见,在gloox同一solution中创建一个win32控制台程序

完整测试程序
// SimpleClient.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"

#include "../src/messagehandler.h"
#include "../src/client.h"
#include "../src/message.h"

using namespace gloox;

class Bot : public MessageHandler
{
public:
	Bot()
	{
		JID jid( "user@host/resource" );
		j = new Client( jid, "pwd" );
		j->registerMessageHandler( this );
		j->connect();
	}
 
	virtual void handleMessage(const Message& stanza, MessageSession* session = 0 )
	{
		//Message msg(stanza.from(), "hello world" );
		//j->send( msg );
	}

private:
	Client* j;
};

int _tmain(int argc, _TCHAR* argv[])
{
	Bot b;
	return 0;
}
说明
1、JID:user是用户名、host是服务器名(登录到Openfire的管理控制台,Host Name的值),至于resource,我是取自Spark:点击“高级”


取下图中“资源”中的值


2、HandleMessage中的内容暂时没有编译过,注释掉了

解决链接错误
上述程序会产生链接错误
1、在VS2008上,只需要设置工程依赖,让这个控制台程序依赖gloox即可
2、在VS2010上,除了引用lib文件之外,还要在EXE的预编译宏里加上GLOOX_VERSION,否则会有些字符串被认为无定义
以上差别原因不明

测试
1、测试连接:准备两个用户A和B,两者互为好友,用Spark先登上,在运行该程序。如果正常,在程序启动30秒后,Spark上的好友图标会变绿。
2、测试收消息:在VS中,handleMessage处加断点,从Spark上发消息给好友,会触发断点。可以从参数Message对象中看到消息体。





  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值