package com.lance.websocket.config;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.socket.WebSocketHandler;
import org.springframework.web.socket.config.annotation.WebSocketConfigurer;
import org.springframework.web.socket.config.annotation.WebSocketHandlerRegistry;

import com.lance.websocket.service.EchoService;
import com.lance.websocket.service.EchoServiceImpl;

@Configuration
public class WebSocketConfig implements WebSocketConfigurer{

	@Override
	public void registerWebSocketHandlers(WebSocketHandlerRegistry registry) {
		registry.addHandler(echoWebSocketHandler(), "/echo")
				.setAllowedOrigins("*")
				.withSockJS()
				.setHeartbeatTime(30000)
				.setSessionCookieNeeded(true);
	}
	
	@Bean
	public WebSocketHandler echoWebSocketHandler() {
		return new EchoWebSocketHandler(echoService());
	}
	
	@Bean
	public EchoService echoService() {
		return new EchoServiceImpl("Did you say \"%s\"?");
	}
}

@@ -143,16 +143,90 @@
 ration;%0A
+import org.springframework.scheduling.concurrent.ConcurrentTaskScheduler;%0A
 import o
@@ -861,16 +861,55 @@
 ed(true)
+%0A%09%09%09%09.setTaskScheduler(taskScheduler())
 ;%0A%09%7D%0A%09%0A%09
@@ -1118,10 +1118,244 @@
 ?%22);%0A%09%7D%0A
+%09%0A%09@Bean%0A%09public ConcurrentTaskScheduler taskScheduler() %7B%0A%09%09ConcurrentTaskScheduler task = new ConcurrentTaskScheduler();%0A%09%09task.scheduleAtFixedRate(new SockTaskRunner(), 1000*60*SocketSessionInfo.SESSION_INVALID);%0A%09%09return task;%0A%09%7D%0A
 %7D%0A

update setTaskScheduler