我正在一个需要用户之间实时交互的项目。我想要一个HTML5 Web客户端(足够简单)和一个本地客户端(最好是Java),并且两者都能够连接到服务器。我已经进行了一些研究,但是还没有找到关于本地客户端是否可以在没有浏览器的情况下连接到服务器的最终答案。
问题:是否可以通过浏览器从本地Java客户端连接到websocket服务器?我见过一些其他语言的浏览器包装器,这可能使之成为可能。如果没有,我愿意提出建议。
谢谢。
你也可以考虑使用JSR 356 - Java API来WebSocket的。这就是Java EE 7的一部分,但是客户端可以从简单的Java SE没有任何问题上运行。目前有多种实现方式,以下将在所有实现方式中起作用:
程序化API:
final WebSocketContainer webSocketContainer = ContainerProvider.getWebSocketContainer();
Session session = webSocketContainer.connectToServer(new Endpoint() {
@Override
public void onOpen(Session session, EndpointConfig config) {
// session.addMessageHandler( ... );
}
}, URI.create("ws://some.uri"));
带注释的API:
public static void main(String[] args) throws IOException, DeploymentException {
final WebSocketContainer webSocketContainer = ContainerProvider.getWebSocketContainer();
webSocketContainer.connectToServer(MyEndpoint.class, URI.create("ws://some.uri"));
}
@ClientEndpoint
public static class MyEndpoint {
// text
@OnMessage
void onMessage(Session session, String message) {
// ...
}
// binary
@OnMessage
void onMessage(Session session, ByteBuffer message) {
// ...
}
// @OnClose, @OnOpen, @OnError
}
请参阅链接页面以获取更多详细信息(完整规格)。
这里有各种各样的实现,基本上每个Java容器都有一个。我正在研究Glassfish / WebLogic实现及其名为Tyrus的实现,请随时尝试(我们在一个捆绑包中提供了易于使用的所有资源,请参阅http://search.maven.org / ...)。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句