我已经安装了 Apache Apollo 并成功运行它。我可以通过http://127.0.0.1:61680/访问其 Web 仪表板。
我想通过 STOMP 连接到这个。我正在使用库 [StompKit][1] 来执行此操作。
private let host: String = "127.0.0.1"
private let port: UInt = 61680
private var client: STOMPClient!
override func viewDidLoad() {
super.viewDidLoad()
client = STOMPClient(host: host, port: port)
connect()
}
连接失败并出现错误Connection denied。
这是apollo.xml文件。
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version
2.0 (the "License"); you may not use this file except in compliance
with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0 Unless required by
applicable law or agreed to in writing, software distributed under
the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES
OR CONDITIONS OF ANY KIND, either express or implied. See the
License for the specific language governing permissions and
limitations under the License.
-->
<!--
For more information on how configure this file please
reference:
http://activemq.apache.org/apollo/versions/1.7.1/website/documentation/user-manual.html
-->
<broker xmlns="http://activemq.apache.org/schema/activemq/apollo">
<notes>
The default configuration with tls/ssl enabled.
</notes>
<log_category console="console" security="security" connection="connection" audit="audit"/>
<authentication domain="apollo"/>
<!-- Give admins full access -->
<access_rule allow="admins" action="*"/>
<access_rule allow="*" action="connect" kind="connector"/>
<virtual_host id="mybroker">
<!--
You should add all the host names that this virtual host is known as
to properly support the STOMP 1.1 virtual host feature.
-->
<host_name>mybroker</host_name>
<host_name>localhost</host_name>
<host_name>127.0.0.1</host_name>
<!-- Uncomment to disable security for the virtual host -->
<!-- <authentication enabled="false"/> -->
<!-- Uncomment to disable security for the virtual host -->
<!-- <authentication enabled="false"/> -->
<access_rule allow="users" action="connect create destroy send receive consume"/>
<!-- You can delete this element if you want to disable persistence for this virtual host -->
<leveldb_store directory="${apollo.base}/data"/>
</virtual_host>
<web_admin bind="http://127.0.0.1:61680"/>
<web_admin bind="https://127.0.0.1:61681"/>
<connector id="tcp" bind="tcp://0.0.0.0:61613" connection_limit="2000"/>
<connector id="tls" bind="tls://0.0.0.0:61614" connection_limit="2000"/>
<connector id="ws" bind="ws://0.0.0.0:61623" connection_limit="2000"/>
<connector id="wss" bind="wss://0.0.0.0:61624" connection_limit="2000"/>
<key_storage file="${apollo.base}/etc/keystore" password="password" key_password="password"/>
</broker>
尝试 1
我能找到的唯一与此相关的答案是 [this][2] (尽管它是针对 MQTT 的)。authentication
无论如何,我通过添加该行来修改 apollo.xml 文件。
<virtual_host id="mybroker">
<authentication enabled="false"/>
...
但这并没有改变。
尝试2:
Web 仪表板有一个用户名/密码登录。所以我尝试了一种不同的 StompKit 方法。
client.connectWithLogin("admin", passcode: "password") { connectedFrame, error in
if let error = error {
print("Error during connecting: \(error.localizedDescription)")
} else {
print("Connected!")
}
}
错误仍然存在。
我在这里做错了什么?