WSO2 EI和mqtt经纪人

时间:2017-08-02 20:57:31

标签: wso2 mqtt wso2mb wso2ei

WSO2 MB用于拥有可扩展的mqtt代理

http://wso2.com/library/articles/2015/10/article-using-wso2-message-broker-as-a-scalable-mqtt-broker/

现在由WSO2 EI 6.1.1取代。 当我必须提供经纪人或在产品内部运行时,我不清楚。 虽然有些文件似乎暗示经纪人已经在那里,但其他一些例子要求蚊子或wso2 mb(现在不可用)单独安装。

https://docs.wso2.com/display/EI611/Sample+906%3A+Inbound+Endpoint+MQTT+Protocol+Sample

使用mqtt客户端进行的简单测试表明,在正常的EI安装和运行之后,配置的参数127.0.0:1883中没有运行mqtt代理。

    <mqtt enabled="true">
        <bindAddress>0.0.0.0</bindAddress>
        <defaultConnection enabled="true" port="1883" />

我应该安装一个单独的mqtt代理吗?或者有办法在旧版MB中运行已经存在的代理? 谢谢!

1 个答案:

答案 0 :(得分:0)

您可以使用位于{EI_HOME} / bin目录的 broker.sh 文件,使用WSO2 EI运行代理。

另一个值得注意的区别是,一旦启动代理,您就可以看到以下日志

Declare @YourTable Table ([Parent] varchar(50),[Child] varchar(50))
Insert Into @YourTable Values 
 (null ,'S-1')
,('S-1','S-11')
,('S-1','S-12')
,('S-1','S-13')
,('S-1','S-14')
,('S-1','S-15')
,('S-11','S-111')
,('S-11','S-112')

;with cteP as (
      Select Child
            ,Parent 
            ,PathID = cast(Child as varchar(500))
      From   @YourTable
      Where  Parent is Null
      Union  All
      Select Child  = r.Child
            ,Parent = r.Parent 
            ,PathID = cast(p.PathID+','+cast(r.Child as varchar(25)) as varchar(500))
      From   @YourTable r
      Join   cteP p on r.Parent  = p.Child)
Select [Group] = Child
      ,B.*
 From  cteP A
 Cross Apply (
                Select Level1 = xDim.value('/x[1]','varchar(max)')
                      ,Level2 = xDim.value('/x[2]','varchar(max)')
                      ,Level3 = xDim.value('/x[3]','varchar(max)')
                      ,Level4 = xDim.value('/x[4]','varchar(max)')
                      ,Level5 = xDim.value('/x[5]','varchar(max)')
                From  (Select Cast('<x>' + replace(PathID,',','</x><x>')+'</x>' as xml) as xDim) as X 
             ) B
  Order By PathID

在WSO2 EI产品中,代理以3的偏移量运行。因此,您必须使用1886端口进行连接。

如果您愿意,可以使用{EI_HOME} /wso2/broker/conf/carbon.xml文件中找到的偏移元素来更改偏移量

希望这会有所帮助。