websocket 的前台这里就不多说了 主要说一下后台的业务逻辑 。
以下是本人的websocket 协议解析,框架是基于mina + spring 做的。
需要的mina jar包有
mina-core-2.0.4.jar
mina-integration-beans-2.0.4.jar
mina-integration-jmx-2.0.4.jar
mina-integration-ognl-2.0.4.jar
mina-integration-spring-1.1.7.jar.zip
大家还没搞出来的可以参照一下,若不对的还希望各位大神指出或者线下交流 QQ:593040793
import java.io.UnsupportedEncodingException;
import java.security.MessageDigest;
import java.util.HashMap;
import java.util.Map;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import org.apache.mina.core.buffer.IoBuffer;
import org.apache.mina.core.service.IoHandlerAdapter;
import org.apache.mina.core.session.IoSession;
import org.codehaus.jackson.map.ObjectMapper;
import org.springframework.beans.factory.annotation.Autowired;
import qq.web.model.Data;
import qq.web.service.MessageData;
import qq.web.service.UserService;
/**
*
* @author 程欣伟
*
*/
public class WebSocketIoHandler extends IoHandlerAdapter {
@Autowired private MessageData messageData;
@Autowired private UserService userService;
public static final String INDEX_KEY = WebSocketIoHandler.class.getName() + ".INDEX";
//key=sessionId value = session sid 和 session对应
private Map<Long, IoSession> ioSessionMap = new HashMap<Long, IoSession>();
//key = userId value = sessionId 用户和 sid 对应
private Map<Integer,Long> userSessionMap = new HashMap<Integer, Long>();
/**
* 将IoBuffer转换成string
* @author 程欣伟
* @param message
* @return
*/
public String ioBufferToString(Object message) {
if (!(message instanceof IoBuffer)){
return "";
}
IoBuffer ioBuffer = (IoBuffer) message;
return new String(ioBuffer.array());
}
转载于:https://blog.51cto.com/ajiao13/1133865