最近一个项目中需要用到一个用户实时聊天需求:需要很多用户(在不同的房间)进行实时聊天,也就是一个简单的聊天室,这里用的是websocket实现。
这里需要对每一个连接都指定两个参数:用户的userId和所加入的房间id(roomId);
@ServerEndpoint("/community/{ro_user}")使用{ro_user}来绑定请求参数,不同的用户连接的时候就把参数加入到连接的后面。这个参数在四个方法都可以绑定到具体参数,这个呢我就只是在onopen的时候绑定一次,然后把参数信息存放到私有变量中,因为用到的是两个整型参数,所以前端使用‘-’把两个参数拼在一起,在后台只需分割成两个参数。
package cn.wzy.sport.controller;
import cn.wzy.sport.entity.User_Message;
import cn.wzy.sport.service.User_MessageService;
import lombok.extern.log4j.Log4j;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import javax.websocket.*;
import javax.websocket.server.PathParam;
import javax.websocket.server.ServerEndpoint;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
import java.util.concurrent.CopyOnWriteArraySet;
/**
* Create by Wzy
* on