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());
}
}


分享到:


相關文章: