Information

0
Story Points

Technologies

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

   }
}
Page generated: Oct 19, 2017 2:35:01 PM