implementation 'org.springframework.boot:spring-boot-starter-websocket'
4. 必須要有一個 WebSocketConfig 類
import org.springframework.context.annotation.Configuration;
import org.springframework.messaging.simp.config.MessageBrokerRegistry;
import org.springframework.web.socket.config.annotation.AbstractWebSocketMessageBrokerConfigurer;
import org.springframework.web.socket.config.annotation.EnableWebSocketMessageBroker;
import org.springframework.web.socket.config.annotation.StompEndpointRegistry;
@Configuration
@EnableWebSocketMessageBroker
public class WebSocketConfig extends AbstractWebSocketMessageBrokerConfigurer{
@Override
public void configureMessageBroker(MessageBrokerRegistry config) {
config.enableSimpleBroker("/topic");
}
@Override
public void registerStompEndpoints(StompEndpointRegistry registry) {
registry.addEndpoint("/endpointChatRoom").withSockJS();
}
}
5. 我們還要建立一個 Controller 來當我們的入口
import org.springframework.messaging.handler.annotation.MessageMapping;
import org.springframework.messaging.handler.annotation.SendTo;
import org.springframework.stereotype.Controller;
import com.tutorial.Model.ChatClientModel;
import com.tutorial.Model.ServerResponseModel;
@Controller
public class CharRoomController {
@MessageMapping("/messageControl")
@SendTo("topic/getResponse")
public ServerResponseModel said(ChatClientModel responseMessage) throws InterruptedException{
Thread.sleep(3000);
return new ServerResponseModel("歡迎來到," + responseMessage.getClientname());
}
}
1.此篇先介紹server端如何建構,下一篇建構client端並且做demo測試
2.我們需要建構兩個數據模型,一個是接收client訊息一個是發送給client訊息
3.這是一個廣播是的發送範例,如果你要的是一個獨立的私密聊天室你可以參考Spring Security將它整合在一起就可以達到你要的目的
4.下一篇會介紹Client如何完成我們的聊天室
5.這邊在強調一次這個範例不能加上spring-boot-starter-web
6.Spring Boot執行時會掃描group內的@Configuration
如果有@Enable...
將會啟用該配置