diff --git a/Readme.md b/Readme.md index f7ab2735..9aa305c5 100644 --- a/Readme.md +++ b/Readme.md @@ -13,7 +13,6 @@ You can checkout the live version of the application at https://spring-ws-chat.h ## Steps to Setup **1. Clone the application** - ```bash git clone https://github.com/callicoder/spring-boot-websocket-chat-demo.git ``` diff --git a/pom.xml b/pom.xml index ae5ce362..3a6c9139 100644 --- a/pom.xml +++ b/pom.xml @@ -41,6 +41,11 @@ org.springframework.boot spring-boot-starter-reactor-netty + + org.springframework.boot + spring-boot-starter-data-jpa + + org.springframework.boot @@ -53,6 +58,11 @@ spring-boot-starter-test test + + mysql + mysql-connector-java + 8.0.26 + diff --git a/src/main/java/com/example/websocketdemo/Entity/ChatMessageentity.java b/src/main/java/com/example/websocketdemo/Entity/ChatMessageentity.java new file mode 100644 index 00000000..f60c3bdd --- /dev/null +++ b/src/main/java/com/example/websocketdemo/Entity/ChatMessageentity.java @@ -0,0 +1,58 @@ +package com.example.websocketdemo.Entity; + +import javax.persistence.*; + +@Entity +public class ChatMessageentity { + @Id + @GeneratedValue(strategy = GenerationType.AUTO) + @Column(name = "id") + private Long id; + @Column(name = "type") + private String type; + @Column(name = "content") + private String content; + @Column(name = "sender") + private String sender; + public ChatMessageentity() { + } + public ChatMessageentity(String type, String content, String sender) { + this.type = type; + this.content = content; + this.sender = sender; + } + // getters and setters + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + + public String getContent() { + return content; + } + + public void setContent(String content) { + this.content = content; + } + + public String getSender() { + return sender; + } + + public void setSender(String sender) { + this.sender = sender; + } + +} \ No newline at end of file diff --git a/src/main/java/com/example/websocketdemo/Repository/ChatRepository.java b/src/main/java/com/example/websocketdemo/Repository/ChatRepository.java new file mode 100644 index 00000000..43786a3e --- /dev/null +++ b/src/main/java/com/example/websocketdemo/Repository/ChatRepository.java @@ -0,0 +1,8 @@ +package com.example.websocketdemo.Repository; + +import com.example.websocketdemo.Entity.ChatMessageentity; +import org.springframework.data.jpa.repository.JpaRepository; + +public interface ChatRepository extends JpaRepository { + +} diff --git a/src/main/java/com/example/websocketdemo/config/WebSocketConfig.java b/src/main/java/com/example/websocketdemo/config/WebSocketConfig.java index c5bd7f36..322a60df 100644 --- a/src/main/java/com/example/websocketdemo/config/WebSocketConfig.java +++ b/src/main/java/com/example/websocketdemo/config/WebSocketConfig.java @@ -7,29 +7,46 @@ /** * Created by rajeevkumarsingh on 24/07/17. */ +//@Configuration +//@EnableWebSocketMessageBroker +//public class WebSocketConfig implements WebSocketMessageBrokerConfigurer { +// +// @Override +// public void registerStompEndpoints(StompEndpointRegistry registry) { +// registry.addEndpoint("/ws").withSockJS(); +// } +// +// @Override +// public void configureMessageBroker(MessageBrokerRegistry registry) { +// registry.setApplicationDestinationPrefixes("/app"); +// registry.enableSimpleBroker("/topic"); // Enables a simple in-memory broker +// +// +// // Use this for enabling a Full featured broker like RabbitMQ +// +// /* +// registry.enableStompBrokerRelay("/topic") +// .setRelayHost("localhost") +// .setRelayPort(61613) +// .setClientLogin("guest") +// .setClientPasscode("guest"); +// */ +// } +//} @Configuration @EnableWebSocketMessageBroker public class WebSocketConfig implements WebSocketMessageBrokerConfigurer { @Override - public void registerStompEndpoints(StompEndpointRegistry registry) { - registry.addEndpoint("/ws").withSockJS(); + public void configureMessageBroker(MessageBrokerRegistry config) { + config.enableSimpleBroker("/topic"); + config.setApplicationDestinationPrefixes("/app"); } @Override - public void configureMessageBroker(MessageBrokerRegistry registry) { - registry.setApplicationDestinationPrefixes("/app"); - registry.enableSimpleBroker("/topic"); // Enables a simple in-memory broker - - - // Use this for enabling a Full featured broker like RabbitMQ - - /* - registry.enableStompBrokerRelay("/topic") - .setRelayHost("localhost") - .setRelayPort(61613) - .setClientLogin("guest") - .setClientPasscode("guest"); - */ + public void registerStompEndpoints(StompEndpointRegistry registry) { + registry.addEndpoint("/ws").withSockJS(); } + + } diff --git a/src/main/java/com/example/websocketdemo/controller/ChatController.java b/src/main/java/com/example/websocketdemo/controller/ChatController.java index ac4e6055..244baa94 100644 --- a/src/main/java/com/example/websocketdemo/controller/ChatController.java +++ b/src/main/java/com/example/websocketdemo/controller/ChatController.java @@ -7,9 +7,6 @@ import org.springframework.messaging.simp.SimpMessageHeaderAccessor; import org.springframework.stereotype.Controller; -/** - * Created by rajeevkumarsingh on 24/07/17. - */ @Controller public class ChatController { @@ -29,3 +26,4 @@ public ChatMessage addUser(@Payload ChatMessage chatMessage, } } + diff --git a/src/main/java/com/example/websocketdemo/model/ChatMessage.java b/src/main/java/com/example/websocketdemo/model/ChatMessage.java index b158d1ad..d32da990 100644 --- a/src/main/java/com/example/websocketdemo/model/ChatMessage.java +++ b/src/main/java/com/example/websocketdemo/model/ChatMessage.java @@ -1,8 +1,5 @@ package com.example.websocketdemo.model; -/** - * Created by rajeevkumarsingh on 24/07/17. - */ public class ChatMessage { private MessageType type; private String content; diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index e69de29b..4e5858b4 100644 --- a/src/main/resources/application.properties +++ b/src/main/resources/application.properties @@ -0,0 +1,6 @@ +debug=enabled +spring.datasource.url=jdbc:mysql://localhost:3306/websocketchatdemo +spring.datasource.username=root +spring.datasource.password=Ss12345@12345 +spring.jpa.hibernate.ddl-auto=update +