如何创建一个libjingle程序

VS2010编译libjingle0.6.2步骤 VS2010编译libjingle0.6.2步骤 图文并茂 立即下载

看文档看的有点迷糊,不如看下源代码talk下example下的login例子的代码很简单。

std::cout << "Auth Cookie: ";
  std::string auth_cookie;
  std::getline(std::cin, auth_cookie);

  std::cout << "User Name: ";
  std::string username;
  std::getline(std::cin, username);

  // Start xmpp on a different thread
  XmppThread thread;
  thread.Start();

  buzz::XmppClientSettings xcs;
  xcs.set_user(username.c_str());
  xcs.set_host("gmail.com");
  xcs.set_use_tls(buzz::TLS_DISABLED);
  xcs.set_auth_cookie(auth_cookie.c_str());
  xcs.set_server(talk_base::SocketAddress("talk.google.com", 5222));
  thread.Login(xcs);

  // Use main thread for console input
  std::string line;
  while (std::getline(std::cin, line)) {
    if (line == "quit")
      break;
  }
  return 0;

重点就是XmppClientSettings和XmppThread2个类的内容了。

查看XmppClientSettings的定义,是XmppUserSettings的子类,2个类好像都只是作为数据的封装用。只有属性,没有实质性的行为。

不知道这里set_host和set_server有啥区别。host和server不是同一个东西吗?

xmppthread是继承自talk_base::Thread, XmppPumpNotify, talk_base::MessageHandler 的一个实现。

Login中调用了一个Post方法。不知道Post方法是来自哪里的.Post只是提交了一个消息。可能是系统自带的吧。具体的login过程是写在Onmessage里面的

XmppThread创建的时候就生成了一个XmppPump类。调用XmppPump的Dologin方法来完成基于Xmpp协议的登录。

然后就是一个接收消息的循环。循环占cpu啊。所以这个只是login的例子。

可恨的是这个例子也没有是否登录成功的提示。。。好悲剧啊

我猜是否更新成功的提示是应该写在OnStateChange事件中的。例子中没有实现。

写了点代码输出这个状态变量state。可是不管我账户和密码是否对,只有124状态,没有3状态啊。好像3状态才是成功的。

 enum State {
    STATE_NONE = 0,        //!< Nonexistent state
    STATE_START,           //!< Initial state.
    STATE_OPENING,         //!< Exchanging stream headers, authenticating and so on.
    STATE_OPEN,            //!< Authenticated and bound.
    STATE_CLOSED,          //!< Session closed, possibly due to error.
  };

可能需要ssl,可能。。。好吧。先这样吧。

来看call的例子。试了下这个例子时能登录的。

而且,我承认这个例子已经很强大了。

2012-2-20今天看了下,0.6.13已经出来了。

想试着把例子call做成一个vs项目。

编译600多个错误

加上WIN32 环境定义 属性设置,c/c++,preprocess,preprocess definitions里加。

另外少了testing部分的代码。可以先把相关的文件去掉。。代码应该是有的,路径不对吧。好像hammer.bat能产生对应的lib库。

后面有个str啥的undeclared的错误,是因为FEATURE_ENABLE_VOICEMAIL 没加

具体可以看constrans.h里的条件编译代码

然后出来很多的link错误,有300多个。根据经验,这个当然是lib设置不对的问题咯

添加了lib路径,linker里加了对应的引用后。少了很多。

还有和msvcprtd.lib冲突的。在Configuration Properties -> Linker -> Ignore Specific Library"里设置下

2012-2-21

然后继续错误,根据错误google,添加winmm.lib  剩103错误

添加ws2_32.lib  剩26错误

添加crypt32.lib secur32.lib dnsapi.lib,剩10个错误

添加Iphlpapi.lib 剩9个 。真郁闷,少了这些lib有没有更好的方法查呢。非得google?

突然想到查看scons文件。添加了strmiids.lib 剩7个

根据scons文件的线索。发现要用/mt模式编译

然后把前面Ignore Specific Library 的lib去掉。ok成功了。。

小小的佩服下自己,不是只会google的小白了。搞了半天,可能是只有设置成mt模式,然后安装scons的要求添加需要的lib就可以了。改天再试试看。

 

 

 

libjingle源码(含GIPS LITE) libjingle源码(含GIPS LITE),方便大家编译上传 立即下载

相关推荐

libjingle,P2P传输的开源库

P2P传输的开源库,通过libjingle我们可以建立一个直通的网络连接(无视中间的NAT、防火墙、中继服务器和代理等),无需特别关心Session建立的细节(加解密、格式等),直接进行数据的交换

Libjingle介绍

Libjingle

深之JohnChen的专栏 1万+

libjingle开发指南

权威的Google整理出来的libjingle开发文档,非常方便的实现p2p的文件、语音、视频传输。

Google开源框架libjingle使用分析

线程模型简介 传统的回调机制,可控性差、容易导致死锁等问题。本模块采用异步任务机制,通过command模式,可以很好的进行多线程的协作,避免使用共享变量、加锁,有效的防止死锁与其他多线程安全问题。 实现上使用了libjingle库。(注:原来使用了chrome base的线程库,两者实现原理一致,但libjingle使用上方便一些。) 把要异步执行的任务信息封装在Message...

Mike_Modern的专栏 2702

【英文】Libjingle(GoogleTalk) 交叉编译步骤(arm-linux)

作者:Group ArmTalk 文档:2011-11-30 指导文档内容: 1. Libjingle是什么 2. 怎么获取Libjingle 3. 怎么交叉编译Libjingle(arm-linux-) 以下是个人说明: 要在ARM架构的嵌入式设备使用libjingle,可以参考该文档进行操作

基于LibJingle框架的P2P平台介绍

基于LibJingle框架的P2P平台介绍。看了一阵子libjingle的代码,对私网穿透有了一些了解。对p2p做一个简单的概述。

Libjingle: 全面、可靠的实时通信库

Libjingle: 全面、可靠的实时通信库 Libjingle 是一个功能强大的开源库,专为实现高质量的实时语音和视频通信而设计。它由 Google 开发并维护,并且在开放源代码社区中广泛使用。无论您是开发 VoIP 应用程序还是想在 Web 应用程序中集成音视频通信功能,Libjingle 都是一个值得考虑的选择。 项目简介 是一个跨平台的库,用于实现实时通信协议(如 SIP 和 XMPP)。...

gitblog_00040的博客 710

yanshee 机器人全流程指南

2.点击yanshee app右上角根据提示操作 3.当手机显示成功连接 ,按下机器人胸前按钮说出“ip地址”4.根据机器人播报的ip地址加上:8888使用浏览器访问,你就会看到 jupyterd的界面,里面可以新建文件也可以改他存在的文件。我们使了yanshee机器人,这个是面向K12、中高职、高校学生推出的开源人形机器人教育平台,应用于课程教学、竞赛、科研活动等场景。我们接下来可以根据这些apl做许多好玩的,比如控制他运动,跳舞唱歌,it`s easy。注意电脑,手机,机器人必须连同一个网。

qq_44827929的博客 7613

Libjingle 库

Libjingle 是google talk voice(语音聊天) 和 p2p interoperability(点对点操作)库,是提供了google talk,p2p文件共享和语音呼叫能力的组件集,libjingle包中包含了jingle和jingle语音以及两个被xmpp标准提议的扩展。 About libjingle (关于libjingle) Libjingle 是...

weixin_34281477的博客 138

【rotors】多旋翼无人机仿真(五)——多无人机仿真

如何创建多个无人机仿真

caiqidong321的博客 2393

微信小程序实现锚点效果 scroll-view的scroll-into-view属性

小程序中实现锚点效果,可以直接使用scroll-view的scroll-into-view属性就可以实现锚点效果,比较方便简单。那么需要用到scroll-view那些参数呢,下面具体讲讲:效果展示: wxml **注意:**viewid值是动态的,通过setData设置即可。js wxss......

FaxMiao的博客 5449

libjingle学习笔记

Libjingle学习笔记:Libjingle概念:Libjingle是一个开发库,由c++的源码和文档组成,这些文档可以使你设计应用程序,通过一个网络,能够连接和交换数据。值得注意的是这个源码需要一些外部的依赖,例如: 声音的聊天例子依赖于Linphone或者GIPS,这取决于你自己的平台。这个源码包含网络和代理服务器的协商层,XML的分析层,一个STUN的服务器,所有的源码需要发起一个连接和交

低调的华丽的专栏 6025

RustDesk网页端远程控制实战:如何用Web Client替代传统客户端(附安全配置建议)

本文详细介绍了RustDesk网页端远程控制的实战应用,包括其核心优势、配置流程及安全加固方案。通过Web Client替代传统客户端,用户可实现跨平台无缝体验和企业级管理效率,特别适合临时协作和移动设备使用。文章还提供了JWT身份验证、LDAP集成等安全配置建议,确保网页端访问的安全性。

weixin_30836759的博客 253

编译libjingle(google talk)

 在网上看到好多朋友编译libjingle(google talk)出现了问题,今天有时间我也来尝试了一下,编译OK了。根据下面的资料解决了大部分问题,但是有些连接(Linker)的错误并没有解决,譬如:pathutils文件中的SHGetSpecialFolderPath,helpers文件中的CryptGenRandom、CryptReleaseContext连接错误等等...

yc_8301的专栏 6594

在pycharm2021.2中学习opencv图像处理,基于python3.9.7、pycharm完成配置

在pycharm中学习opencv图像处理安装python下载python安装包开始安装安装pycharm社区版下载pycharm开始安装如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入 安装python 使用pycharm学习opencv应该是最简单的了,对新手比较友好,

steveqobs 7708

Unity雷达图效果实现

unity雷达图源码

a604263644的博客 1026

libjingle重要概念阅读

原文:Important Concepts 信号 有点类似注册信号之类的东西,如果对这个不熟,自己慢慢看书去吧。 线程 libjiingle使用多线程来使应用程序有更好的性能。一般libjingle有一个或者两个全局的线程: 1.signaling thread,信号线程。用来创建基本组件,例如Session Management和Control and XMPP Messaging组件。 2.worker thread工作线程,有时在代码里称作channel

pafone的专栏 2487

Doris实战——结合Flink构建极速易用的实时数仓

Doris实战——结合Flink构建极速易用的实时数仓

爱吃辣条的博客 8233

libjingle之(程序的封装)

http://blog.youkuaiyun.com/miky_sun/article/details/5053608#Libjingle_9055016236379743_335 一:回调函数 ReportFileSpeed(file_name,user_id,speed,progress);       //上报进度和速度--必须独立的线程或定时器 ReportFileS

shuixin536的专栏 2334

(付费请教,防遗忘记录)为什么EDEM bondV1 V2添加后还是没有胶结?????

最近用到了EDEM的胶结功能,在添加了bond V1和V2后,我发现无论颗粒半径设置为多少,接触半径设置为多少,胶结键的参数设置为多少,bond generated数量均为0!!!在后处理中bond中的力也通通为0!!我跟我的同门百思不得其解!!!!最终付费请教了一个大牛,解决了这个问题!!!!答案在文末

zheaa的博客 3103

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

libjingle翻译之《关于libjingle》

Libjingle 是google talk voice(语音聊天) 和 p2p interoperability(点对点操作)库,是提供了google talk,p2p文件共享和语音呼叫能力的组件集,libjingle包中包含了jingle和jingle语音以及两个被xmpp标准提议的扩展。     About libjingle  (关于libjingle)   Libjingl

我们这里还有鱼······ 671

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

关于libjingle

Libjingle 是google talk voice(语音聊天) 和 p2p interoperability(点对点操作)库,是提供了google talk,p2p文件共享和语音呼叫能力的组件集,libjingle包中包含了jingle和jingle语音以及两个被xmpp标准提议的扩展。     About libjingle  (关于libjingle)   Libjingle

chenice9999的专栏 2433

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

编写基于libjingle的应用程序的步骤

Libjingle是Google提供的C++组件集,它为点对点通讯与语音呼叫功能提供交互操作性。组件包包括了创建网络连接(穿越NAT与防火墙设备,中继服务器和代理),协商会话细节(编解码器,文件格式等),以及数据的交换。还提供了一些辅助的工具例如XML解析以及网络代理的处理等。使用libjingle可以实现如下应用: 多用户语音聊天应用多用户视频会议应用多用户音乐流媒体应用点对点文件共享

好记性不如写博客! 2060

编译libjingle

参考帖子:1. Install Visual C++ Express 2005.  It is free from this link:    http://msdn.microsoft.com/vstudio/express/visualc/ 2. Install the platform SDK and integrate it into VC++ express    http://

龙宇网的专栏 1716
上一篇: libjingle中的重要概念
下一篇: libjingle2-把call改写成win32窗口程序
吕刚
博客等级 码龄24年 217粉丝 151原创
评论 5
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值