diff --git a/pom.xml b/pom.xml index abd4d57..dfb9c70 100644 --- a/pom.xml +++ b/pom.xml @@ -31,6 +31,10 @@ org.springframework.boot spring-boot-starter-freemarker + + org.apache.commons + commons-lang3 + com.alibaba druid diff --git a/src/main/java/app/bcms/jchat/utils/WsMessageUtil.java b/src/main/java/app/bcms/jchat/utils/WsMessageUtil.java new file mode 100644 index 0000000..ffa83a9 --- /dev/null +++ b/src/main/java/app/bcms/jchat/utils/WsMessageUtil.java @@ -0,0 +1,37 @@ +package app.bcms.jchat.utils; + +import app.bcms.jchat.websocket.WebSocketManager; +import com.alibaba.fastjson.JSONObject; +import org.apache.commons.lang3.StringUtils; + +import javax.websocket.Session; +import java.util.HashMap; +import java.util.Map; + +public class WsMessageUtil { + /** + * 发送绑定信息 + * @param session + * @param roomId + */ + public static void bildmsg(Session session, String roomId){ + JSONObject json = new JSONObject(); + json.put("type","bild"); + json.put("client_id",session); + if(StringUtils.isAllBlank(roomId)){ + json.put("room_id",""); + }else { + json.put("room_id",roomId); + } + String rtmsg = json.toString(); + WebSocketManager.sentToUser(session,rtmsg); + } + + /** + * 心跳包 + */ + public static void beatHeart(Session session){ + String rtmsg ="{\"pong\":\"pong\"}"; + WebSocketManager.sentToUser(session,rtmsg); + } +} diff --git a/src/main/java/app/bcms/jchat/websocket/WebSocketServer.java b/src/main/java/app/bcms/jchat/websocket/WebSocketServer.java index 728851d..8709076 100644 --- a/src/main/java/app/bcms/jchat/websocket/WebSocketServer.java +++ b/src/main/java/app/bcms/jchat/websocket/WebSocketServer.java @@ -1,5 +1,6 @@ package app.bcms.jchat.websocket; +import app.bcms.jchat.utils.WsMessageUtil; import com.alibaba.fastjson.JSONObject; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; @@ -31,16 +32,27 @@ public class WebSocketServer { @OnMessage public void onMessage(String message, Session session) { JSONObject json = JSONObject.parseObject(message); + if(json==null){ + WebSocketManager.sentToUser(session,message); + } + // 消息类型 String mtype = json.getString("type"); - // 返回的信息 - JSONObject outjson = new JSONObject(); - log.info("msg type :"+mtype); + // 房间号 + String roomId = json.getString("room_id"); + switch (mtype) { - case "pong":outjson.put("ping","pong");break; +// case "pong":outjson.put("ping","pong");break; + case "pong":WsMessageUtil.beatHeart(session);break; + case "bild": + WsMessageUtil.bildmsg(session,roomId);break; + case "login": + WsMessageUtil.bildmsg(session,roomId);break; + default: + WebSocketManager.sentToUser(session,message); } // send message - String outjsonstr =outjson.toString(); - WebSocketManager.sentToUser(session,outjsonstr); +// String outjsonstr =outjson.toString(); +// WebSocketManager.sentToUser(session,outjsonstr); log.info("来自SessionId:"+session.getId()+"的消息:{}"+message); } diff --git a/www/chat.html b/www/chat.html index 110fe1f..d92b26f 100644 --- a/www/chat.html +++ b/www/chat.html @@ -88,7 +88,7 @@