diff --git a/pom.xml b/pom.xml
index b0a9f31..a4cd795 100644
--- a/pom.xml
+++ b/pom.xml
@@ -21,6 +21,10 @@
org.springframework.boot
spring-boot-starter-web
+
+ org.springframework.boot
+ spring-boot-starter-test
+
com.auth0
java-jwt
@@ -66,9 +70,11 @@
com.alibaba
fastjson
- 2.0.32
+ 1.2.83
+
+
diff --git a/src/main/java/com/example/chat/ChatApplication.java b/src/main/java/com/example/chat/ChatApplication.java
index 5ae68e1..8883925 100644
--- a/src/main/java/com/example/chat/ChatApplication.java
+++ b/src/main/java/com/example/chat/ChatApplication.java
@@ -1,10 +1,12 @@
package com.example.chat;
+import org.apache.ibatis.annotations.Mapper;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.web.socket.config.annotation.EnableWebSocket;
-@EnableWebSocket
+//@EnableWebSocket
+@Mapper
@SpringBootApplication
public class ChatApplication {
diff --git a/src/main/java/com/example/chat/controller/LoginController.java b/src/main/java/com/example/chat/controller/LoginController.java
index d5bc90d..06fae90 100644
--- a/src/main/java/com/example/chat/controller/LoginController.java
+++ b/src/main/java/com/example/chat/controller/LoginController.java
@@ -1,11 +1,15 @@
package com.example.chat.controller;
+import com.example.chat.ChatApplication;
+import com.example.chat.dao.chat.ChatMapper;
import com.example.chat.entity.Email;
import com.example.chat.entity.Result;
import com.example.chat.entity.User;
+import com.example.chat.entity.chat.Message;
import com.example.chat.service.CodeCheck;
import com.example.chat.service.LoginService;
import com.example.chat.service.mail.MailUtil;
+import org.junit.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
@@ -22,6 +26,8 @@ public class LoginController {
@Resource
MailUtil mailUtil;
+
+
@PostMapping("/login")
public Result Login(@RequestBody User user) throws IOException {
Result result = new Result();
diff --git a/src/main/java/com/example/chat/dao/Login.java b/src/main/java/com/example/chat/dao/Login.java
index 21093bb..5d3aa22 100644
--- a/src/main/java/com/example/chat/dao/Login.java
+++ b/src/main/java/com/example/chat/dao/Login.java
@@ -3,6 +3,7 @@ package com.example.chat.dao;
import com.example.chat.entity.User;
import com.example.chat.dao.mybatis.MybatisSingleton;
import org.apache.ibatis.session.SqlSession;
+import org.junit.Test;
import org.springframework.stereotype.Repository;
diff --git a/src/main/java/com/example/chat/dao/chat/ChatMapper.java b/src/main/java/com/example/chat/dao/chat/ChatMapper.java
index b43d414..dc83df6 100644
--- a/src/main/java/com/example/chat/dao/chat/ChatMapper.java
+++ b/src/main/java/com/example/chat/dao/chat/ChatMapper.java
@@ -7,7 +7,6 @@ import org.springframework.stereotype.Repository;
import java.io.IOException;
import java.util.List;
-@Repository
public interface ChatMapper {
public abstract void addMessage(Message message) throws IOException;
diff --git a/src/main/java/com/example/chat/dao/chat/ChatMessage.java b/src/main/java/com/example/chat/dao/chat/ChatMessage.java
index 24f8cc3..35e0137 100644
--- a/src/main/java/com/example/chat/dao/chat/ChatMessage.java
+++ b/src/main/java/com/example/chat/dao/chat/ChatMessage.java
@@ -7,7 +7,6 @@ import org.apache.ibatis.session.SqlSession;
import org.springframework.stereotype.Repository;
import java.io.IOException;
-import java.util.ArrayList;
import java.util.List;
@Repository
@@ -28,10 +27,11 @@ public class ChatMessage implements ChatMapper {
sqlSession.close();
}
+ @Override
public List getMessage() throws IOException {
List messageList;
SqlSession sqlSession = MybatisSingleton.getSqlSessionFactory().openSession();
- messageList = sqlSession.selectOne("dao.chat.Message.getMessage");
+ messageList = sqlSession.selectList("dao.chat.Message.getMessage");
sqlSession.close();
return messageList;
}
diff --git a/src/main/java/com/example/chat/dao/chat/MapperTest.java b/src/main/java/com/example/chat/dao/chat/MapperTest.java
new file mode 100644
index 0000000..c0528ef
--- /dev/null
+++ b/src/main/java/com/example/chat/dao/chat/MapperTest.java
@@ -0,0 +1,34 @@
+package com.example.chat.dao.chat;
+
+import com.example.chat.ChatApplication;
+import com.example.chat.dao.UserMapper;
+import com.example.chat.entity.User;
+import com.example.chat.entity.chat.Message;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.springframework.boot.test.context.SpringBootTest;
+
+import org.springframework.test.context.junit4.SpringRunner;
+
+import javax.annotation.Resource;
+import java.io.IOException;
+@RunWith(SpringRunner.class)
+@SpringBootTest(classes = ChatApplication.class)
+public class MapperTest {
+
+ @Resource(name = "chatMessage")
+ ChatMapper mapper;
+ @Resource(name = "login")
+ UserMapper userMapper;
+
+
+ @Test
+ public void Test02() throws IOException {
+ System.out.println(userMapper.getUser(new User("1", "1", "1", "1")));
+ }
+
+ @Test
+ public void Test01() throws IOException {
+ mapper.addMessage(new Message("1", "1", "1", "1"));
+ }
+}
diff --git a/src/main/java/com/example/chat/jwt/InterceptorConfig.java b/src/main/java/com/example/chat/jwt/InterceptorConfig.java
index 28715e5..48d97ab 100644
--- a/src/main/java/com/example/chat/jwt/InterceptorConfig.java
+++ b/src/main/java/com/example/chat/jwt/InterceptorConfig.java
@@ -24,6 +24,7 @@ public class InterceptorConfig implements WebMvcConfigurer {
excludePath.add("/sendCode");
excludePath.add("/register");//注册
excludePath.add("/register");
+ excludePath.add("/chat/get");
registry.addInterceptor(tokenInterceptor)//注册拦截器
.addPathPatterns("/**")//拦截所有请求
.excludePathPatterns(excludePath);//添加拦截白名单
diff --git a/src/main/java/com/example/chat/service/LoginService.java b/src/main/java/com/example/chat/service/LoginService.java
index a8f475f..98900b7 100644
--- a/src/main/java/com/example/chat/service/LoginService.java
+++ b/src/main/java/com/example/chat/service/LoginService.java
@@ -4,6 +4,7 @@ import com.example.chat.dao.UserMapper;
import com.example.chat.dao.redis.RedisUtil;
import com.example.chat.entity.User;
import com.example.chat.jwt.JWTUtil;
+import org.junit.Test;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
@@ -17,14 +18,17 @@ public class LoginService {
@Resource(name = "tokenRedis")
RedisUtil redisUtil;
+ @Test
+ public void Test01() throws IOException {
+ System.out.println(userTable.getUser(new User()));
+ }
+
public String LoginCheck(User requestUser) throws IOException {
User user;
user = userTable.getUser(requestUser);
System.out.println(user);
System.out.println(requestUser);
if (user != null) {
-
-
if (user.getPassword().equals(requestUser.getPassword())) {
String token = JWTUtil.sign(user.getAccount());
redisUtil.addRedis(user.getAccount(), token);
diff --git a/src/main/java/com/example/chat/service/websocket/WebSocketServer.java b/src/main/java/com/example/chat/service/websocket/WebSocketServer.java
index dfdd9ff..7dc7ae6 100644
--- a/src/main/java/com/example/chat/service/websocket/WebSocketServer.java
+++ b/src/main/java/com/example/chat/service/websocket/WebSocketServer.java
@@ -1,54 +1,57 @@
package com.example.chat.service.websocket;
import com.alibaba.fastjson.JSON;
-import com.alibaba.fastjson.JSONObject;
import com.example.chat.dao.chat.ChatMapper;
+import com.example.chat.dao.chat.ChatMessage;
import com.example.chat.entity.chat.Message;
import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Component;
+import org.springframework.web.bind.annotation.CrossOrigin;
-import org.springframework.stereotype.Service;
-
-import javax.annotation.Resource;
-import javax.swing.*;
import javax.websocket.*;
import javax.websocket.server.ServerEndpoint;
import java.io.IOException;
-import java.util.ArrayList;
import java.util.List;
+import java.util.concurrent.CopyOnWriteArrayList;
+@CrossOrigin
@Slf4j
@ServerEndpoint(value = "/chat/get")
-@Service
+@Component
public class WebSocketServer {
- private final List sessionList = new ArrayList<>();
+ private static final List sessionList = new CopyOnWriteArrayList<>();
- @Resource
- ChatMapper chatMapper;
+
+ public ChatMapper chatMapper=new ChatMessage();
@OnOpen
public void onOpen(Session session) throws IOException {
sessionList.add(session);
log.info("有新用户加入聊天,当前在线人数为{}", sessionList.size());
+ if (chatMapper == null) {
+ log.error("chatMapper为null");
+ }
List messageList = chatMapper.getMessage();
sendAllSession(messageList);
}
@OnMessage
public void onMessage(String message) throws IOException {
- Message message1= JSON.parseObject(message,Message.class);
+ Message message1 = JSON.parseObject(message, Message.class);
chatMapper.addMessage(message1);
- List messageList=chatMapper.getMessage();
+ List messageList = chatMapper.getMessage();
sendAllSession(messageList);
}
+
@OnError
- public void onError(Throwable error){
+ public void onError(Throwable error) {
log.error("发生错误");
error.printStackTrace();
}
@OnClose
- public void onClose(Session session){
+ public void onClose(Session session) {
log.info("有一个用户断开连接了");
sessionList.remove(session);
}
@@ -60,8 +63,8 @@ public class WebSocketServer {
try {
for (Session session : sessionList) {
- log.info("给客户端发送消息{}",session);
- session.getBasicRemote().sendObject(message);
+ log.info("给客户端发送消息{}", session);
+ session.getBasicRemote().sendText(JSON.toJSONString(message));
}
} catch (Exception e) {
log.error("消息发送失败", e);