netty 是不是 xmpp服务器
1、可以使用openfire,以前做项目用过,必要时可以修改源码满足需求。
2、现在做IM第三方的API有很多。如环信,极推等。
3、Socket socket = new Socket();
socket connect(new InetSocketAddress(host, port), 20000);
socket setSoTimeout(45000);
byte[] byte = date;//你要传输的数据
BufferedInputStream is = new BufferedInputStream(socketgetInputStream(), 512);
DataInputStream dis = new DataInputStream(is);
out = new BufferedOutputStream(socketgetOutputStream());
outwrite(bytes);
服务端写个socketServer监听客户端的请求就可以了
如果你想做复杂点儿,还可以扩展个私有协议
项目中需要用到openfire的文件传输,但是客户端使用flex,官方提供的xiff包中并没有封装文件传输的功能,没办法,研究了几天,在google和官方smock源码的帮助下终于实现了xiff下的文件传输,在这里做个总结。
openfire服务器是基于xmpp协议的,XMPP支持两种文件流传输协议,SOCKS5 Bytestreams和 In-Band Bytestreams,SOCKS5是直接发送二进制流,而IBB是将文件转成base64码进行然后用message的形式进行传输,我这里仅实现了SOCKS5的文件代理传输。
SOCKS5文件传输需要用到两个协议,XEP-0065和XEP-0096
XEP-0096定义文件传输协议,提供了一个模块化框架使能交换被传输文件的信息以及参数的协商,也就是在传输文件之前协商将要传输的文件信息。
XEP-0065定义SOCKS5流传输标准协议,提供用于在任意两个XMPP用户之间建立字节流并进行文件传输。
根据我的理解,文件传输的过程分为协商,建立socks5连接,二进制传输这三个阶段
协商的过程最复杂,然后是建立连接,传输就比较简单,下面一个一个来讲
协商包括初始方、目标方、代理方,初始方就是发送文件方,目标方即文件接收方,代理方是socks5代理服务器,
协商过程就是三方互相发送xml来交换信息的过程,通俗点就是三个人沟通一下传什么文件和怎么传文件。
首先遵循XMP-0096协议,初始方给目标方发送包含文件信息的xml(如果对你有帮助,请设置“好评”,谢谢!)
MQTT是一个轻量级的消息发布\/订阅协议,它是基于手机客户端的消息推送服务器的实现一个理想的解决方案。我们可以从项目下载示例代码,您可以找到一个用PHP实现的服务器。“
架构如下:
wmqttjar MQTT协议是由IBM提供。您可以从以下网站下载。您可以添加jar包到自己的Android应用程序。
真的消息代理(RSMB),他是一个简单的MQTT剂,由IBM提供小也。默认情况下,1883端口负责接收来自服务器的消息并将它们转发到指定的移动设备。
山姆是一个PHP库编写MQTT。你可以从这下载它。
send_mqttphp是后通过山姆接收消息和发送消息到RSMB PHP脚本。<例代码: > > > > > > > > > >使用Android推
XMPP协议>这是我的项目的项目。事实上,官方C2DM服务器谷歌也是XMPP协议包的基础上。
XMPP(可扩展通信和表示协议)是基于可扩展标记语言(XML)的协议,它用于即时消息(IM)和在线检测。这项协议可能最终允许互联网用户发送即时消息给任何人在互联网上。
androidpn是一个基于java的开源Android的推送通知实现XMPP协议。它包含一个完整的客户端和服务器。研究发现,源代码后,服务器改为基于openfire的另一个开源项目的实现,但更令人沮丧的是androidpn文件写的是韩语,所以整个研究过程是基本的阅读源代码。它的实现原理图如下:
androidpn客户端需要使用一个aSmack java开源XMPP协议,这个包是另一个开源项目,基于openfire的味道,但我们不需要自己编译,可以直接使用androidpn客户端asmackjar里面。xmppconnection的建立和aSmack服务器提供与客户的持久连接,并连接用户的注册和登录认证一样,通过这个连接,接收服务器发送的通知。
androidpn服务器也是java语言,基于openfire开源项目,但它的Web部件中使用Spring框架,它不同于openfire。Androidpn服务器主要分为两个部分,一是监听5222端口的XMPP服务,对xmppconnection类的客户沟通,是用户的注册和认证,并发送推送通知消息。Web服务器的另一部分,使用轻量级HTTP服务器,负责接收用户的web请求。服务器架构如下:
上包含四个组成部分,即SessionManager,授权经理,presencemanager和通知经理。SessionManager负责客户端和服务器的会话管理、认证经理负责用户认证客户端的管理,存在经理负责客户端用户登录管理,NotificationManager负责服务器到客户端的消息推送功能的实现。服务器接口如下,分别对应于上述几个功能模块:发送后,可以看到手机端收到的消息:
0条评论