Red Hat Application Migration Toolkit
package org.sample.chat; import java.util.ArrayList; import java.util.Iterator; import java.util.List; import weblogic.websocket.WSHandshakeRequest; import weblogic.websocket.WSHandshakeResponse; import weblogic.websocket.WebSocketAdapter; import weblogic.websocket.WebSocketConnection; import weblogic.websocket.annotation.WebSocket; @WebSocket( timeout = -1, pathPatterns = {"/ws/*"} ) public class ChatEndpoint extends WebSocketAdapter { static final String joined = ": ---------- joined ----------"; static final String left = ": ---------- left ----------"; List users = new ArrayList(); public boolean accept(WSHandshakeRequest request, WSHandshakeResponse response) { return true; } public void onMessage(WebSocketConnection connection, String payload) { int joinIndex = payload.indexOf(": ---------- joined ----------"); int leftIndex = payload.indexOf(": ---------- left ----------"); String user; Iterator i$; if(joinIndex > 0) { user = payload.substring(0, joinIndex); if(!this.users.contains(user)) { this.users.add(user); } StringBuffer userList = new StringBuffer(); i$ = this.users.iterator(); while(i$.hasNext()) { String wsConn = (String)i$.next(); userList.append(wsConn); userList.append(";"); } userList.append(payload); payload = userList.toString(); } if(leftIndex > 0) { user = payload.substring(0, leftIndex); for(int var11 = this.users.size() - 1; var11 >= 0; --var11) { if(user.equals(this.users.get(var11))) { this.users.remove(var11); break; } } } i$ = this.getWebSocketContext().getWebSocketConnections().iterator(); while(i$.hasNext()) { WebSocketConnection var12 = (WebSocketConnection)i$.next(); try { var12.send(payload); } catch (Exception var10) { var10.printStackTrace(); } } } public void onTimeout(WebSocketConnection connection) { try { connection.send("The connection is closed because of timeout!"); } catch (Exception var3) { var3.printStackTrace(); } } public void onError(WebSocketConnection connection, Throwable error) { try { connection.send("The connection is closed because of error: " + error.getMessage()); } catch (Exception var4) { var4.printStackTrace(); } } }