我想在Spring MVC apllication中使用SockJS,STOMP打开websocket连接。我遇到的问题类似于question。但答案对我不起作用。我已经按照here的教程进行了操作。 正如所说here我的应用程序在调用webapp / socket.do映射时将404返回给浏览器。 javascript代码如下:
socket = new SockJS('webapp/socket.do');
stompClient = Stomp.over(socket);
stompClient.connect({}, function(frame) {...
我在web.xml文件中的servlet映射如下:
`<servlet-mapping>
<servlet-name>dispatch-servlet</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>`
现在我尝试更改&#34; *。do&#34;的网址映射。到&#34; /&#34;使用其他资源网址模式建议here by @Gofier这个(&#34; /&#34;)使连接打开但不能正确渲染一些资源。(网页不能正确加载)。
我还有什么方法可以使用&#34; *。做&#34;并允许使用&#34; / info&#34;进行websocket连接。同时 ??请建议任何可能的方法来解决此问题。感谢。
更新 :显示控制器代码和配置文件
@Configuration
@EnableScheduling
@EnableWebMvc
@ComponentScan(basePackages="com.package")
@EnableWebSocketMessageBroker
public class WebSocketConfig extends AbstractWebSocketMessageBrokerConfigurer {
@Override
public void registerStompEndpoints(StompEndpointRegistry registry) {
registry.addEndpoint("/socket.do").withSockJS();
}
@Override
public void configureMessageBroker(MessageBrokerRegistry registry) {
registry.enableSimpleBroker("/queue/", "/topic/");
registry.setApplicationDestinationPrefixes("/app");
}
}
控制器代码:
@MessageMapping("/hello")
@SendTo("/topic/greetings")
public Greeting greeting(HelloMessage message) throws Exception {
Thread.sleep(3000); // simulated delay
return new Greeting("Hello, " + message.getName() + "!");
}
答案 0 :(得分:0)
怎么样......
<servlet-mapping>
<servlet-name>dispatch-servlet</servlet-name>
<url-pattern>*.do</url-pattern>
<url-pattern>/hello/*</url-pattern>
</servlet-mapping>
此?