是WebSockets的新手......
通过遵循编码教程学习如何实现基于Spring的WebSockets:
http://www.baeldung.com/websockets-spring
我的maven pom.xml:
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-websocket</artifactId>
<version>4.0.3.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-messaging</artifactId>
<version>4.0.3.RELEASE</version>
</dependency>
WebSocket控制器:
@Controller
public class WebSocketController {
@MessageMapping("/messages")
@SendTo("/topic/messages")
public OutputMessage send(final Message message) throws Exception {
final String time = new SimpleDateFormat("HH:mm").format(new Date());
return new OutputMessage(message.getFrom(), message.getText(), time);
}
}
输出消息:
public class OutputMessage {
private String from;
private String text;
private String time;
// Constructor
// Getters and Setters
}
消息(传入):
public class Message {
private String from;
private String text;
// Constructor
// Getters and Setters
}
当我将war文件部署到我的Tomcat 7容器并打开浏览器并将其指向:
时http://localhost:8080/myapp/messages
在网络浏览器中收到以下回复:
Can "Upgrade" only to "WebSocket".
本教程的作者使用JavaScript作为访问此Web Socket的客户端...
问题(S):
如何通过Java代码(而不是JavaScript)访问此Web套接字(发布消息并在响应中查看输出消息)?
是否有一个Java库(最好是一个与Spring一起工作的库)可以让我这样做(对不起,很多Internet上的例子都是JavaScript Web套接字客户端)?
有没有办法通过JUnit测试访问此调用?
我是否应该使用8080以下的其他端口用于WebSockets?如果是,我该如何配置?