HTML5 WebSocket JavaWeb 实现简单的聊天室功能

core.js中的encodeScript方法

function encodeScript(data) { if(null == data || "" == data) { return ""; } return data.replace("", ">");}

服务端目录结构

HTML5 WebSocket JavaWeb 实现简单的聊天室功能

服务端使用tomcat-websocket-api的jar包实现,主要是client包下面的BarrageClient类

init为对外提供服务的方法名称

前台与后台建立连接后, onOpen方法被调用

前台与后台断开连接后, onClose方法被调用

前台向后台传送消息后, onMessage会被调用, message中的数据格式为JSON

@ServerEndpoint("/init")
public class BarrageClient {
private static Logger LOG = LoggerFactory.getLogger(BarrageClient.class);
@OnOpen
public void onOpen(Session session) {
//加入用户池
UserPool.add(session);
}
@OnMessage
public void onMessage(String message, Session session) throws IOException {
LOG.info("user [" + session.getId() + "] Received: " + message);
//给所有用户发送消息
MessageProxy.getInstance().getProxy(Message.class).send(message, session);
}
@OnError
public void onError(Throwable throwable) {
LOG.error(throwable.getMessage());
}
@OnClose
public void onClose(Session session) {
//移除用户池
UserPool.remove(session.getId());
}
}


分享到:


相關文章: