Commit 9255db2e by zhangchen

更新websocket多实例单线程问题

parent c8f06452
......@@ -21,8 +21,9 @@ import javax.websocket.server.ServerEndpoint;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.context.ContextLoader;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.ctrip.fun.common.vo.user.CourseDeviceBean;
......@@ -43,12 +44,20 @@ import com.ctrip.fun.golf.service.user.UserMService;
* @Date
*
*/
@Controller
@ServerEndpoint("/webSocketByFace/{username}")
public class FaceWebSocket {
private FaceListResult faceList = new FaceListResult();
private Logger logger = LoggerFactory.getLogger(FaceWebSocket.class);
// 这里使用静态,让 service 属于类
private static UserMService userMService;
// 注入的时候,给类的 service 注入
@Autowired
public void setUserMService(UserMService userMService) {
FaceWebSocket.userMService = userMService;
}
@Autowired
private static int onlineCount = 0;
......@@ -79,9 +88,8 @@ public class FaceWebSocket {
@OnMessage
public void onMessage(String message) throws IOException {
//List<FaceUserRegistBean> list = new ArrayList<FaceUserRegistBean>();
List<UserFace> userFaceList = new ArrayList<UserFace>();
UserMService bean = ContextLoader.getCurrentWebApplicationContext().getBean(UserMService.class);
//UserMService bean = ContextLoader.getCurrentWebApplicationContext().getBean(UserMService.class);
RegistResult jsonTo = JSONObject.parseObject(message,RegistResult.class);
logger.info(jsonTo.toString());
RegistResult result = new RegistResult();
......@@ -92,12 +100,12 @@ public class FaceWebSocket {
String uid = body.getUid();
UserFaceResultBean face = new UserFaceResultBean();
try{
UserFaceBean userExt = bean.getFaceByUid(uid, uid);
UserFaceBean userExt = userMService.getFaceByUid(uid, uid);
if(!new Date().after(userExt.getCommuneAgainTime())){
face.setUid(uid);
face.setCreateTime(new SimpleDateFormat("yyyy-MM-dd").format(new Date()));
face.setDeviceId(username);
bean.saveUserFaceDetail(face);
userMService.saveUserFaceDetail(face);
result.setMessage("欢迎爱玩会员 "+userExt.getUserName());
result.setSuccess(true);
}else{
......@@ -129,15 +137,15 @@ public class FaceWebSocket {
} else if ("003".equals(jsonTo.getCode())) {
logger.info(jsonTo.getBody().toString());
try{
courseDeviceBean = bean.findCourseDeviceByDeviceId(jsonTo.getBody().getDeviceId(),jsonTo.getBody().getDeviceId());
courseDeviceBean = userMService.findCourseDeviceByDeviceId(jsonTo.getBody().getDeviceId(),jsonTo.getBody().getDeviceId());
if(courseDeviceBean ==null){
courseDeviceBean = new CourseDeviceBean();
courseDeviceBean.setCourseName(jsonTo.getBody().getCourseName());
courseDeviceBean.setDeviceId(jsonTo.getBody().getDeviceId());
bean.saveCourseDevice(courseDeviceBean);
userFaceList = bean.faceList();
userMService.saveCourseDevice(courseDeviceBean);
userFaceList = userMService.faceList();
}else{
userFaceList = bean.faceList();
userFaceList = userMService.faceList();
}
faceList.setBody(userFaceList);
faceList.setCode(jsonTo.getCode());
......@@ -155,7 +163,7 @@ public class FaceWebSocket {
} else if("005".equals(jsonTo.getCode())){
FaceUserRegistBean userBean = jsonTo.getBody();
String uids = userBean.getUserId();
userFaceList = bean.findUserInfoByUid(uids);
userFaceList = userMService.findUserInfoByUid(uids);
faceList.setBody(userFaceList);
faceList.setCode(jsonTo.getCode());
faceList.setId(jsonTo.getId());
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment