mqtt mqtt linux服务器搭建建需要用到java吗

二次元同好交流新大陆
扫码下载App
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!&&|&&
我的msn是:yuhui_
LOFTER精选
网易考拉推荐
用微信&&“扫一扫”
将文章分享到朋友圈。
用易信&&“扫一扫”
将文章分享到朋友圈。
阅读(6382)|
用微信&&“扫一扫”
将文章分享到朋友圈。
用易信&&“扫一扫”
将文章分享到朋友圈。
历史上的今天
在LOFTER的更多文章
loftPermalink:'',
id:'fks_',
blogTitle:'(转)
MQTT客户端代码
fusesource
mqtt-client',
blogAbstract:'我英语不是很好所以从网上找了一篇中文的 结合& /fusesource/mqtt-client 这个来看转:/blog/1797463MQTT是一款针对机对机(M2M)通信的,非常轻量级的的消息订阅、发布协议。它适用于一些系统资源和网络带宽非常有限的情况下的远程连接。\nMQTT-Client提供一个ASL \n2.0证书下的MQTT接口。在网络连接失败时,它能够自动地重新连接服务器并尝试恢复会话。应用程序能够使用阻塞API、基于Future的API和回\n调API,共三种接口形式。\n&\n在Maven中引用MQTT-Client\n将下列文本加入到pom.xml文件中。&dependency&',
blogTag:'mqtt,fusesource,client',
blogUrl:'blog/static/8',
isPublished:1,
istop:false,
modifyTime:4,
publishTime:2,
permalink:'blog/static/8',
commentCount:0,
mainCommentCount:0,
recommendCount:1,
bsrk:-100,
publisherId:0,
recomBlogHome:false,
currentRecomBlog:false,
attachmentsFileIds:[],
groupInfo:{},
friendstatus:'none',
followstatus:'unFollow',
pubSucc:'',
visitorProvince:'',
visitorCity:'',
visitorNewUser:false,
postAddInfo:{},
mset:'000',
remindgoodnightblog:false,
isBlackVisitor:false,
isShowYodaoAd:true,
hostIntro:'我的msn是:yuhui_',
hmcon:'1',
selfRecomBlogCount:'0',
lofter_single:''
{list a as x}
{if x.moveFrom=='wap'}
{elseif x.moveFrom=='iphone'}
{elseif x.moveFrom=='android'}
{elseif x.moveFrom=='mobile'}
${a.selfIntro|escape}{if great260}${suplement}{/if}
{list a as x}
推荐过这篇日志的人:
{list a as x}
{if !!b&&b.length>0}
他们还推荐了:
{list b as y}
转载记录:
{list d as x}
{list a as x}
{list a as x}
{list a as x}
{list a as x}
{if x_index>4}{break}{/if}
${fn2(x.publishTime,'yyyy-MM-dd HH:mm:ss')}
{list a as x}
{if !!(blogDetail.preBlogPermalink)}
{if !!(blogDetail.nextBlogPermalink)}
{list a as x}
{if defined('newslist')&&newslist.length>0}
{list newslist as x}
{if x_index>7}{break}{/if}
{list a as x}
{var first_option =}
{list x.voteDetailList as voteToOption}
{if voteToOption==1}
{if first_option==false},{/if}&&“${b[voteToOption_index]}”&&
{if (x.role!="-1") },“我是${c[x.role]}”&&{/if}
&&&&&&&&${fn1(x.voteTime)}
{if x.userName==''}{/if}
网易公司版权所有&&
{list x.l as y}
{if defined('wl')}
{list wl as x}{/list}所有文章皆为原创,若转载请标明出处,谢谢~
新浪微博,欢迎关注:
2627282930311234568111213141617181920212223242526272812345678
随笔 - 151
评论 - 306
留言簿(37)
随笔分类(123)
随笔档案(146)
个人一直在使用中,在线观看上高清视频一点都不卡。
每个月才18块钱,一个季度48,再超值提供一个9折优惠码:freevpnssh。
我平常在Linux下安装/更新软件,压根不用担心GFW阻挠了,
更不用提windows 7了。
阅读排行榜
评论排行榜
60天内阅读排行【开源】MQTT推送服务器——zer0MqttServer(Java编写)-爱编程
【开源】MQTT推送服务器——zer0MqttServer(Java编写)
重要的放前面:V1.0版本是一个非常基础的版本,除了完整的MQTT协议实现外,其他功能什么都没做。
MQTT 协议是 IBM 开发的即时通讯协议,相对于 IM 的实际上的准标准协议 XMPP 来说,MQTT 更小,更快,更轻量。MQTT 适合于任何计算能力有限,工作在低带宽、不可靠的网络中的设备,包括手机,传感器等等。
开发此客户端的目的,是因为实际项目中需要用到推送、即时通讯的内容,而第三方平台有时候不稳定,遇到问题难于调试。所以决定自己开发一套即时通讯系统。选用 MQTT 的原因正如上所说,它比XMPP更适合手机端使用。具体比较请参看:。
项目断断续续写了快一年(2015年2月~12月),大部分在业余时间完成。代码中的每个函数都有明确的中文注释信息,对于 MQTT 实现的部分,更是细节到每个功能对应的文档的页数都进行了标明。此服务器既可以针对具体项目二次开发使用,也可以用于 MQTT 协议的学习。
网络传输功能(使用 Java7 才开始支持的 AIO 实现)~~
会话管理功能
任务调度框架(使用Quartz框架为基础封装)
协议层与网络层的分离(即换套协议,网络层一点不用改,也能用)
MQTT完整实现(推送,单聊,群聊)
安全层(消息加密、解密、防重放,防中间人等等)
好友功能(添加好友,删除好友,好友列表等等)
群组管理功能(添加群组,退出群组等等)
总之就是可以拓展的应用层都没做
所有还没做的都是我之后想要升级的
zer0MqttServer 的使用很简单:
下载源码(源码中包括所有依赖包)
检查 Java 版本是否为1.7或以上,不是则按照 Java 1.7及以上
引用依赖包
运行包 com.syxy.server 下的 StartServer 文件,即可启动服务器。
测试方法也同样简单:
运行包 test 下的 MQTTClientTest 文件,即可开启测试客户端。
测试客户端包括的功能有:连接服务器、订阅主题、发送固定信息,客户端通过 pahoMqtt 第三方jar包编写,你可以自行修改代码进行更详细的测试
下面简述一下项目的目录结构:
com.syxy.util 包中是一些公共类,包括缓冲池BufferPool、任务调度框架QuartzManager、字符串处理类StringTool、日期时间类TimeUtils等等
com.syxy.Aiohandler 是 AIO 的具体实现,包含了 IO 建立、数据接收、数据回写3个类。
com.syxy.server 是网络应用层,StartServer 用于启动服务器,并初始化协议相关的类。TcpServer 初始化了服务器的初始资源,包括缓冲区大小,协议处理器,端口配置,AIO 等等。ClientSession 是会话管理类,每个客户端的连接对应一个此类对象,包含心跳处理,会话断开,数据接收,处理,回写等等内容。
com.syxy.protocol 定义了协议处理接口
com.syxy.protocol.mqttImp 则是具体的 MQTT 协议的处理。包括协议的编码,解码,业务处理等等。其中的 message 包中处理了14种 MQTT 对应的消息类型(编码、解码)。process 包中进行了协议的具体处理。最重要的是ProtocolProcess.java文件,其中完整实现了MQTT协议文件中的具体流程。
resource 文件中包含了一些配置文件,其中 mqtt.properties 文件可以针对缓冲区大小、临时存储文件名、服务器端口等信息
最后附上源码地址:
在github中选择分支 release-V1.0 即可。主干会持续开发,不能保证可以跑通。
版权所有 爱编程 (C) Copyright 2012. . All Rights Reserved.
闽ICP备号-3
微信扫一扫关注爱编程,每天为您推送一篇经典技术文章。[1] MQTT,mosquitto,Eclipse Paho---入门
[1] MQTT,mosquitto,Eclipse Paho---入门
MQTT,mosquitto,Eclipse Paho这三个单词陌生而又神秘。那么这三个单词究竟是什么意思,代表了什么技术,他们之间有关联吗?不着急,请听笔者慢慢给大家分享。
(1)(英语全称,Message Queue Telemetry Transport),中文翻译过来就是遥测传输协议:其主要提供订阅/发布模式,更为简约、轻量,易于使用,针对受限环境(带宽低、网络延迟高、网络通信不稳定),属于物联网(Internet of Thing)的一个传输协议。具体协议内容,请参考:http://docs.oasis-open.org/mqtt/mqtt/v3.1.1/os/mqtt-v3.1.1-os.html。&
是MQTT协议标准的一种开源实现,其具体的操作方式,请 参考http://mosquitto.org/man/mosquitto-8.html,其具体的安装和使用方式,网上有很多的资料,咱们就不在重复说明了。对于这种协议,其实有很多的服务器的实现,如下,都是MQTT协议的服务器端的实现。但是为了方便和简单起见,咱们这一系列的文章选择Mosquitto作为MQTT服务器的实现。
IBM Websphere MQ Telemetry
IBM MessageSight
IBM Integration Bus
Eclipse Paho
Eurotech Everywhere Device Cloud
webMethods Nirvana Messaging
Apache ActiveMQ
Apache Apollo
Litmus Automation Loop
(3)&是Eclipse 提供的一个访问MQTT服务器的一种开源客户端库。其提供了7种不同语言平台的客户端类库。
在咱们这一系列的文章中,咱们就以Java的客户端库为例子,和大家一起度过接下来的系列文章。
值得一提的是,和MQTT服务器进行交互的开源框架还有很多,比如,对于Java语言和平台来说,有下面的框架。
&Includes a client library, mock broker for unit/integration
testing, and applications to support enterprise needs like using a cluster of servers as a single client, an HTTP gateway, etc.
&-&deprecated&IBM
IA92 support pack, use Eclipse Paho GUI client instead. A useful MQTT Java swing GUI for publishing & subscribing. The Eclipse Paho GUI is identical but uses newer client code
但是,根据目前的流行和使用的次数,应该首推Eclipse Paho,因此本系列的文章选择Eclipse Paho作为客户端的访问类库和MQTT的服务进行交互。
发表评论:
TA的最新馆藏android消息推送,使用MQTT协议,谁有用java写过服务端_百度知道

我要回帖

更多关于 mqtt java服务器搭建 的文章

 

随机推荐