我用Tyrus建立了连接。这是代码:
public void connect(String IP) {
WebSocketContainer webSocketContainer = ContainerProvider.getWebSocketContainer();
ClientEndpointConfig.Configurator configurator = new ClientEndpointConfig.Configurator() {
public void beforeRequest(Map<String, List<String>> headers) {
List<String> originValue = new ArrayList<>();
originValue.add("http://example.com");
headers.put("Origin", originValue);
}
};
ClientEndpointConfig clientConfig = ClientEndpointConfig.Builder.create()
.configurator(configurator)
.build();
try {
webSocketContainer.connectToServer(this, clientConfig, new URI(IP));
} catch (Exception e) {
...
}
}
我的电脑有几个IP地址。我想从选定的IP发送WebSocket请求-我想将WebSocket绑定到特定的本地IP。有可能做到吗?我应该使用另一个图书馆吗?
编辑:我发现netty-它允许手动设置本地IP地址。
本地地址将由操作系统根据本地接口的路由表选择。
如果你有多个ip都可以到达目标主机,我建议你通过要绑定的本地ip配置一个到该主机的(静态)路由。
我使用了代理,而不是为请求选择IP。