XMPP通讯工具开发
以xmpp协议,使用openfire为服务器,在PC端使用smack和android端使用amack开发客户端,逐步开发信息通信,文件传输,音视频交流的开源交流工具,不局限于xmpp,之后也会用sip协议,都统一放在这里
jwzhangjie
工作9年,游戏SDK开发4年
展开
-
pjsip视频通信开发(底层实现)之用户注册(1)
一、PJSIP简介对于pjsip的介绍可以看http://www.cnblogs.com/my_life/articles/2175462.html 文章,里面详细介绍了它的组成框架以及各部份的组成介绍,我把官网中提供的一个pjsip的整体框架图贴到这里二、simple_pjsua.c分析我今天要实现的是UA这部份内容,主要作用可以查看http://www.cnblogs.co原创 2013-10-30 15:47:43 · 15151 阅读 · 0 评论 -
pjsip视频通信开发(上层应用)之拨号界面整体界面功能实现
在前面的几章里面写了显示、键盘、拨号、删除功能,这里我将他们进行组合,形成一个拨号键盘全部功能。首先是布局<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_原创 2013-10-29 10:16:23 · 7818 阅读 · 6 评论 -
pjsip视频通信开发(上层应用)之拨号键盘下部份拨号和删除功能
我们开发的是视频电话,所以既可以视频通话,可以只有音频的通话,所以底部含有两个按钮,最后一个就是删除功能,如果输入错误,我们可以删除输入的内容。这里我们要通过重写LinearLayout来实现这部份,对应着上面的功能我们可以写一个接口来实现这些功能,如下:public interface OnDialActionListener { /** * The原创 2013-10-29 09:56:40 · 2952 阅读 · 0 评论 -
pjsip视频通信开发(上层应用)之数字键盘的制作
在pjsip视频通信开发(上层应用)之EditText重写中我制作了一个显示输入内容的EditText,这里将制作一个数字键盘,其实跟计算器一样,最多的就是用TableLayout来实现,内部通过权重(weight)来实现布局的统一,上层实现按键事件触发回调实现内容的输出。键盘布局:<TableLayout xmlns:android="http://schemas.android原创 2013-10-29 09:38:31 · 2962 阅读 · 3 评论 -
pjsip视频通信开发(上层应用)之EditText重写
我们经常使用手机的打电话功能,当我们按键盘的时候,有一个地方显示我们按键的内容,当我们的手点击那个地方的时候,并没有弹出软件盘,所以我们再有数字键盘的时候,要屏蔽系统的软件盘。我们分析一下,软件盘弹出的条件:1、焦点,当EditText处于焦点的时候,会自动弹出软件盘,所以我们要重写onFocusChanged函数2、触摸时间,当你点击EditText的时候,那它就会处于焦点,所以我们原创 2013-10-29 09:08:36 · 3029 阅读 · 0 评论 -
CSipsimple如何添加视频通信功能
默认编译出来的CSipSimple是没有视频功能的,获取你去官网下载一个插件http://nightlies.csipsimple.com/plugins/CSipSimpleVideoPlugin.apk ,而如果你搜素CSipSimple视频通信的话,你会看到一个CSipSimple(小X)的,我使用了一下,默认是可以视频通话的,我们如何实现在CSipSimple官网源码的基础上添加视频功能呢原创 2013-10-25 12:26:45 · 11679 阅读 · 16 评论 -
CSipsimple最新版本编译
CSipsimple是依赖pjsip协议,官网http://code.google.com/p/csipsimple/,官网上也有已经编译好的apk,对于编译CSipsimple有两种方式,一种就是要编译jni,另一种编译jni,直接使用已经编译好的这两种我都会说一下,首先说比较简单的一种,这个在官网上 也有介绍http://code.google.com/p/csipsimple/wiki/Ho原创 2013-10-24 14:10:46 · 22776 阅读 · 15 评论 -
pjsip使用最新源码编译 for android
最近要研究一下pjsip,所以从网上查看各种资料,下载源码,我用的ndk版本是r8d,编译步骤如下:1.首先到官网下载源码,注意的是它有两个系列1.x和2.x,好像是2.x里面添加了视频功能,最主要的是2.1以上支持android编译,所以我选择的是2.x,下载地址:svn checkout http://svn.pjsip.org/repos/pjproject/trunk pjsip2原创 2013-10-24 12:38:14 · 17545 阅读 · 23 评论 -
XMPP通讯开发-好友文件传输
在XMPP通讯开发-好友通信实现 中我们实现了好友间的信息通信,在这里我们实现好友间文件的传输,这部分内容可以查看smack_3_3_0\documentation\extensions\index.html,文件传输我们主要用到的是FileTransferManager和OutgoingFileTransfer,当然我们可以发送文件也可以接收文件,要实现接收文件我们需要FileTransferM原创 2013-09-29 17:37:07 · 8478 阅读 · 1 评论 -
XMPP通讯开发-好友通信实现
在 XMPP通讯开发-弹出好友通信对话框的逻辑设计 中我们实现双击好友弹出聊天的对话框,那只是一个框架,而我们要真是的实现聊天需要重写JDialog里面的内容JPanel。这里我们可以根据好友聊天需要的基本的功能,我们需要使用的是ChatManager这个聊天管理器,然后与指定用户建立Chat session,之后就可以发送和接收消息了。这部分我们可以看官方的文档smack_3_3_0\do原创 2013-09-29 15:42:19 · 2584 阅读 · 0 评论 -
XMPP通讯开发-弹出好友通信对话框的逻辑设计
在QQ里面我们要跟好友进行通信,选择好友所在的组,双击好友选项,弹出聊天的对话框,这里我们就要实现这个步骤,在之前显示好友列表的功能里面我使用的是JTree组件,所以我们显示的也就是一个树形结构,分为根节点,枝节点,叶节点,而要弹出框的节点就是叶节点,所有当我们双击功能的时候,要进行判断。tree = new JTree(top); tree.addMouseLis原创 2013-09-29 14:00:04 · 2104 阅读 · 0 评论 -
XMPP通讯开发-仿QQ显示好友列表和用户组
在 XMPP通讯开发-服务器好友获取以及监听状态变化 中我们获取服务器上的用户好友信息,然后结合XMPP通讯开发-好友获取界面设计 我们将两个合并起来,首先获取用户组,然后把用户组用List存储起来用作对比好友的用户组,根据用户组的个数然后创建相应的DefaultMutableTreeNode节点用于添加好友,获取好友列表,根据用户组把当前用户添加的所属的用户组,这里要注意的是一个好友可原创 2013-09-26 15:46:09 · 3479 阅读 · 0 评论 -
XMPP通讯开发-服务器好友获取以及监听状态变化
在 XMPP通讯开发-好友获取界面设计 我们设计了放QQ的列表功能,这里我们获取我们服务器上的 数据。这一部分知识我们可以查看smack_3_3_0/smack_3_3_0/documentation/roster.html,这个是官方的文档,介绍了我们可以使用Roster来获取,同时我们还可以注册监听器,当用户的状态信息发生变化的时候可以通知UI进行更新。获取好友实体Roster原创 2013-09-26 09:33:52 · 8336 阅读 · 0 评论 -
XMPP通讯开发-好友获取界面设计
在XMPP通讯开发-服务器连接 中我们成功连接到服务器上面,然后进入到主界面,接下来就是获取好友列表,这里我们分段开发,首先就是界面的设计,这里仿照QQ好友界面,里面的数据先是用模拟的,下一章获取服务器上面的信息然后在替换,先看一下界面效果其实界面设计很简单,主要用到JTabbedPane,然后使用JTree将数据添加进来,最后在把JTree添加到JTabbedPane中,代码如下:原创 2013-09-25 22:35:06 · 2327 阅读 · 0 评论 -
XMPP通讯开发-服务器连接
有关XMPP的相关知识这里就不讲解了,网上有很多,这里我使用的NetBeans+Openire+smack搭建一个以XMPP协议的通讯工具,对于这部分知识我也不是很了解,也是初识吧,可能有些概念会混淆,今天这张主要是用NetBeans做一个主界面,登陆自己搭建的OpenFire服务器。以后会慢慢添加功能,当然这部分也是开源,开源地址https://github.com/jwzhangjie/ICh原创 2013-09-25 16:41:00 · 3578 阅读 · 0 评论 -
Openfire 管理员密码查看
今天安装Openfire但是设置完毕后忘记密码了,然后查看资料,找到了解决方法Openfire的密码加密是由 org.jivesoftware.util.Blowfish 实现的,不过需要加密需要获取Openfire的 passwordKey ,在安装的目录下面的openfire\embedded-db\openfire.script里面查找INSERT INTO OFPROPERTY原创 2013-09-23 10:00:00 · 13530 阅读 · 1 评论