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