在 XMPP通讯开发-服务器好友获取以及监听状态变化   中我们获取服务器上的用户好友信息,然后结合XMPP通讯开发-好友获取界面设计    我们将两个合并起来,首先获取用户组,然后把用户组用List存储起来用作对比好友的用户组,根据用户组的个数然后创建相应的DefaultMutableTreeNode节点用于添加好友,获取好友列表,根据用户组把当前用户添加的所属的用户组,这里要注意的是一个好友可以存在不同的用户组里面,所以获取的好友所在的组也是一个集合,最后在添加一个根的DefaultMuta…
在XMPP通讯开发-服务器连接 中我们成功连接到服务器上面,然后进入到主界面,接下来就是获取好友列表,这里我们分段开发,首先就是界面的设计,这里仿照QQ好友界面,里面的数据先是用模拟的,下一章获取服务器上面的信息然后在替换,先看一下界面效果 其实界面设计很简单,主要用到JTabbedPane,然后使用JTree将数据添加进来,最后在把JTree添加到JTabbedPane中,代码如下: /** * 添加好友列表的功能:模拟数据 */ private void initFriends(){ //…
在 XMPP通讯开发-好友获取界面设计   我们设计了放QQ的列表功能,这里我们获取我们服务器上的 数据. 这一部分知识我们可以查看smack_3_3_0/smack_3_3_0/documentation/roster.html,这个是官方的文档,介绍了我们可以使用Roster来获取,同时我们还可以注册监听器,当用户的状态信息发生变化的时候可以通知UI进行更新. 获取好友实体 Roster是一个集合,我们看一下集合中的实体是由什么组成的. Every user in a roster is r…
web qq 获取好友列表hash算法 在使用web qq的接口进行好友列表获取的时候,需要post一个参数:hash 在对其js文件进行分析之后,发现计算hash的函数位于: http://0.web.qstatic.com/webqqpic/pubapps/0/50/eqq.all.js 这个文件中: P = function(b, i) { for (var a = [], s = 0; s < i.length; s++) a[s % 4] ^= i.charCodeAt(s); var…
有关XMPP的相关知识这里就不讲解了,网上有很多,这里我使用的NetBeans+Openire+smack搭建一个以XMPP协议的通讯工具,对于这部分知识我也不是很了解,也是初识吧,可能有些概念会混淆,今天这张主要是用NetBeans做一个主界面,登陆自己搭建的OpenFire服务器.以后会慢慢添加功能,当然这部分也是开源,开源地址https://github.com/jwzhangjie/IChat_PC.git 首先是主界面设计,我这里做的很简单,两个编辑框一个登陆按钮,如下图所示 输入用户…
由于开发需求,需要做一个类似qq的聊天界面,侧滑弹出单条item右侧菜单,菜单可点击,效果如下图(包括点击事件+长按事件): 1.项目主体dom和css 页面结构比较简单,顶部header做了fixed定位. 页面主体被id="wrapper"包含,每条item有用户的头像.名字和操作btn组成. <header> 聊天 </header> <div id="wrapper"> <ul id="scroller&q…
效果如下:依次为图一---图二----图三----图四 主要实现效果: 点击主标题显示下拉好友,再点击收起下拉好友:鼠标移到好友上背景颜色改变:选中的好友背景颜色也要改变: 代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns=…
前言 今天咱们用Node.js中的核心模块以及上节学习的模板引擎art-template来实现服务器软件Apache的大体功能.用过Apache的朋友都知道,我们只需把本地文件放置在Apache的www目录下,开启服务器后,浏览器便可通过服务器访问本地文件. 创建server和www文件夹,server文件夹用来存放Node脚本文件,www文件夹(类似Apache的www目录)即是我们的一些资源文件. 在server文件夹的server.js中引入art-template模块,引入之前先安装,可…
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-…
//直接代码 只包含 折叠展开字典的处理搭建#import "CFViewController.h" @interface CFViewController ()<UITableViewDelegate,UITableViewDataSource> { UITableView *CFTableView; //数据 NSArray * CFOnearray; NSMutableArray *CFArray; NSArray *CFDetailArray; CGFloat He…