如何使用 Jawampa(Java WAMP 实现)订阅事件
How to use Jawampa (Java WAMP implementation) to subcribe to an event
我想使用 poloniex API。 https://poloniex.com/support/api/
到目前为止,我制作了 Jawampa ( https://github.com/Matthias247/jawampa ) 运行 IntelliJ。
我的第一个问题是,如何登录成功? (Jawampa 的文档没有帮助)
我得到了 API 密钥和秘密。我必须在 Jawampa 的构建器中使用哪些功能:
withRealm
有角色
withConnectorProvider
withConnectionConfiguration
连载
withStrictUriValidation
与AuthId
withAuth方法
withObjectMapper
到目前为止我有这段代码
try {
WampClientBuilder builder = new WampClientBuilder();
builder.withConnectorProvider(connectorProvider)
.withUri("wss://api.poloniex.com")
.withAuthId("APIKEY")
.withRealm("realm2")
.withInfiniteReconnects()
.withReconnectInterval(1, TimeUnit.SECONDS);
client1 = builder.build();
} catch (Exception e) {
e.printStackTrace();
return;
}
wss://api.poloniex.com 是否正确,或者我应该为该客户端使用 wss://api.poloniex.com/returnTicker?
我是否必须始终为每个 URI 创建一个新客户端?
在此先感谢您。
- 我的第一个问题是,如何登录成功?
您无需通过 WAMP 协议访问 Poloniex Push API 进行身份验证。 Push API 方法是 public,因此您不必提供 API 密钥和密码。只需连接到 wss://api.poloniex.com 并订阅所需的提要(Ticker、Order Book and Trades、Trollbox)。
顺便说一句,您只需要为交易 API 方法提供 API 密钥。而这个 Secret 是用来对 POST 数据进行签名的。
- 我必须在 Jawampa 的构建器中使用哪些功能:
这就是您连接到推送的方式 API:
WampClient client;
try {
WampClientBuilder builder = new WampClientBuilder();
IWampConnectorProvider connectorProvider = new NettyWampClientConnectorProvider();
builder.withConnectorProvider(connectorProvider)
.withUri("wss://api.poloniex.com")
.withRealm("realm1")
.withInfiniteReconnects()
.withReconnectInterval(5, TimeUnit.SECONDS);
client = builder.build();
} catch (Exception e) {
return;
}
一旦您的客户端连接上,您就可以订阅这样的提要:
client.statusChanged().subscribe(new Action1<WampClient.State>() {
@Override
public void call(WampClient.State t1) {
if (t1 instanceof WampClient.ConnectedState) {
subscription = client.makeSubscription("trollbox")
.subscribe((s) -> { System.out.println(s.arguments()); }
}
}
});
client.open();
- wss://api.poloniex.com 正确还是我应该使用
wss://api.poloniex.com/returnTicker 对于那个客户?
wss://api.poloniex.com 是正确的。此外,returnTicker 属于 Public API 并且通过 HTTP GET 请求访问。
- 我是否必须始终为每个 URI 创建一个新客户端?
关于推送 API,将客户端连接到 wss://api.poloniex.com 后,您可以使用此客户端订阅多个提要。例如:
client.statusChanged().subscribe(new Action1<WampClient.State>() {
@Override
public void call(WampClient.State t1) {
if (t1 instanceof WampClient.ConnectedState) {
client.makeSubscription("trollbox")
.subscribe((s) -> { System.out.println(s.arguments()); });
client.makeSubscription("ticker")
.subscribe((s) -> { System.out.println(s.arguments()); });
}
}
});
然而,根据 Jawampa 文档:
After a WampClient was closed it can not be reopened again. Instead of this a new instance of the WampClient should be created if necessary.
我想使用 poloniex API。 https://poloniex.com/support/api/
到目前为止,我制作了 Jawampa ( https://github.com/Matthias247/jawampa ) 运行 IntelliJ。
我的第一个问题是,如何登录成功? (Jawampa 的文档没有帮助)
我得到了 API 密钥和秘密。我必须在 Jawampa 的构建器中使用哪些功能:
withRealm 有角色 withConnectorProvider withConnectionConfiguration 连载 withStrictUriValidation 与AuthId withAuth方法 withObjectMapper
到目前为止我有这段代码
try {
WampClientBuilder builder = new WampClientBuilder();
builder.withConnectorProvider(connectorProvider)
.withUri("wss://api.poloniex.com")
.withAuthId("APIKEY")
.withRealm("realm2")
.withInfiniteReconnects()
.withReconnectInterval(1, TimeUnit.SECONDS);
client1 = builder.build();
} catch (Exception e) {
e.printStackTrace();
return;
}
wss://api.poloniex.com 是否正确,或者我应该为该客户端使用 wss://api.poloniex.com/returnTicker?
我是否必须始终为每个 URI 创建一个新客户端?
在此先感谢您。
- 我的第一个问题是,如何登录成功?
您无需通过 WAMP 协议访问 Poloniex Push API 进行身份验证。 Push API 方法是 public,因此您不必提供 API 密钥和密码。只需连接到 wss://api.poloniex.com 并订阅所需的提要(Ticker、Order Book and Trades、Trollbox)。
顺便说一句,您只需要为交易 API 方法提供 API 密钥。而这个 Secret 是用来对 POST 数据进行签名的。
- 我必须在 Jawampa 的构建器中使用哪些功能:
这就是您连接到推送的方式 API:
WampClient client;
try {
WampClientBuilder builder = new WampClientBuilder();
IWampConnectorProvider connectorProvider = new NettyWampClientConnectorProvider();
builder.withConnectorProvider(connectorProvider)
.withUri("wss://api.poloniex.com")
.withRealm("realm1")
.withInfiniteReconnects()
.withReconnectInterval(5, TimeUnit.SECONDS);
client = builder.build();
} catch (Exception e) {
return;
}
一旦您的客户端连接上,您就可以订阅这样的提要:
client.statusChanged().subscribe(new Action1<WampClient.State>() {
@Override
public void call(WampClient.State t1) {
if (t1 instanceof WampClient.ConnectedState) {
subscription = client.makeSubscription("trollbox")
.subscribe((s) -> { System.out.println(s.arguments()); }
}
}
});
client.open();
- wss://api.poloniex.com 正确还是我应该使用 wss://api.poloniex.com/returnTicker 对于那个客户?
wss://api.poloniex.com 是正确的。此外,returnTicker 属于 Public API 并且通过 HTTP GET 请求访问。
- 我是否必须始终为每个 URI 创建一个新客户端?
关于推送 API,将客户端连接到 wss://api.poloniex.com 后,您可以使用此客户端订阅多个提要。例如:
client.statusChanged().subscribe(new Action1<WampClient.State>() {
@Override
public void call(WampClient.State t1) {
if (t1 instanceof WampClient.ConnectedState) {
client.makeSubscription("trollbox")
.subscribe((s) -> { System.out.println(s.arguments()); });
client.makeSubscription("ticker")
.subscribe((s) -> { System.out.println(s.arguments()); });
}
}
});
然而,根据 Jawampa 文档:
After a WampClient was closed it can not be reopened again. Instead of this a new instance of the WampClient should be created if necessary.