首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Websocket Spring 4

问Websocket Spring 4
EN

Stack Overflow用户
提问于 2016-09-27 21:47:05
回答 1查看 979关注 0票数 0

我正在尝试在Spring4中使用websocket Java,我已经创建了一个服务器处理程序。以下是我的代码

​

代码语言:javascript
复制
import java.util.logging.Logger;

import org.springframework.web.socket.CloseStatus;
import org.springframework.web.socket.WebSocketMessage;
import org.springframework.web.socket.WebSocketSession;
import org.springframework.web.socket.handler.TextWebSocketHandler;

public class ServerHandler extends TextWebSocketHandler{
	
	private Logger logger = Logger.getLogger(this.getClass().getName());
	
	@Override
	public void afterConnectionClosed(WebSocketSession session, CloseStatus status) throws Exception {
		// TODO Auto-generated method stub
		logger.info("Connection clodes with websocket server: session id " + session.getId());
	}
	
	@Override
	public void afterConnectionEstablished(WebSocketSession session) throws Exception {
		// TODO Auto-generated method stub
		logger.info("Connected user with websocket server: session id " + session.getId());
	}
	
	@Override
	public void handleMessage(WebSocketSession session, WebSocketMessage<?> message) throws Exception {
		// TODO Auto-generated method stub
		
		super.handleMessage(session, message);
	}
	
	@Override
	public void handleTransportError(WebSocketSession session, Throwable exception) throws Exception {
		// TODO Auto-generated method stub
		super.handleTransportError(session, exception);
	}
}

​

接下来,我创建了一个websocket配置器。以下是代码

​

代码语言:javascript
复制
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.socket.config.annotation.EnableWebSocket;
import org.springframework.web.socket.config.annotation.WebSocketConfigurer;
import org.springframework.web.socket.config.annotation.WebSocketHandlerRegistry;

@Configuration
@EnableWebSocket
public class WebsocketConfig implements WebSocketConfigurer{

	
	@Override
	public void registerWebSocketHandlers(WebSocketHandlerRegistry registry) {
		registry.addHandler(myHandler(), "/websocket").withSockJS();
		
	}
	
	@Bean
    public ServerHandler myHandler() {
        return new ServerHandler();
    }
	
}

​

在我的客户端(JavaScript)中,我尝试连接到服务器

​

代码语言:javascript
复制
var sock = new SockJS('http://localhost:9999/websocket');

​

当我试图执行客户端时,我得到了一个404错误,问题出在哪里?

EN

回答 1

Stack Overflow用户

发布于 2016-09-27 22:10:42

向WebsocketConfig类添加@Controller注释,这样它就可以处理来自客户端的请求。

代码语言:javascript
复制
@EnableWebSocket
@Controller
public class WebsocketConfig implements WebSocketConfigurer{

并设置setAllowedOrigins(),避免连接不同域名时出错。

代码语言:javascript
复制
registry.addHandler(myHandler(), "/websocket").setAllowedOrigins("*").withSockJS();
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39726404

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档