From 8996d10efacb5bb9ec86a27172d9e7673fd914a8 Mon Sep 17 00:00:00 2001 From: Zach Taylor Date: Sun, 28 Jul 2013 14:39:42 -0500 Subject: [PATCH] basic websocket stuff was pretty easy #68 --- .classpath | 1 + .../jetty-websocket-8.1.12.v20130726.jar | Bin 0 -> 125946 bytes src/org/jpokemon/manager/PlayerManager.java | 22 +++++++- src/org/jpokemon/server/JPokemonServer.java | 3 +- .../jpokemon/server/JPokemonWebSocket.java | 53 ++++++++++++++++++ .../server/JPokemonWebSocketServlet.java | 15 +++++ web/index.html | 17 ++++++ 7 files changed, 108 insertions(+), 3 deletions(-) create mode 100644 lib/jetty/jetty-websocket-8.1.12.v20130726.jar create mode 100644 src/org/jpokemon/server/JPokemonWebSocket.java create mode 100644 src/org/jpokemon/server/JPokemonWebSocketServlet.java create mode 100644 web/index.html diff --git a/.classpath b/.classpath index c8e2022..a874505 100644 --- a/.classpath +++ b/.classpath @@ -23,5 +23,6 @@ + diff --git a/lib/jetty/jetty-websocket-8.1.12.v20130726.jar b/lib/jetty/jetty-websocket-8.1.12.v20130726.jar new file mode 100644 index 0000000000000000000000000000000000000000..1b93315d982312117b4408744ec010d95d1b913e GIT binary patch literal 125946 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 literal 0 HcmV?d00001 diff --git a/src/org/jpokemon/manager/PlayerManager.java b/src/org/jpokemon/manager/PlayerManager.java index b537064..28dece6 100644 --- a/src/org/jpokemon/manager/PlayerManager.java +++ b/src/org/jpokemon/manager/PlayerManager.java @@ -11,9 +11,10 @@ import java.util.Map; import java.util.Queue; -import org.jpokemon.server.JPokemonServer; import org.jpokemon.manager.component.OverworldActivity; import org.jpokemon.manager.message.Message; +import org.jpokemon.server.JPokemonServer; +import org.jpokemon.server.JPokemonWebSocket; import org.jpokemon.trainer.Player; import org.jpokemon.trainer.PokemonTrainer; import org.json.JSONArray; @@ -57,6 +58,24 @@ public static void activityRequest(JSONObject request) throws ServiceException { } } + public static void dispatchRequest(JPokemonWebSocket socket, JSONObject request) throws JSONException, ServiceException { + Player player = connections.get(socket); + String action = request.getString("action"); + + // TODO : Refactor all of this shit + if (action.equals("login")) { + String name = loadPlayer(request.getString("name")); + socket.sendLog("Loaded with name: " + name); + } + else if (action.equals("create")) { + String name = createPlayer(request.getString("name"), request.getString("rival")); + socket.sendLog("Loaded with name: " + name); + } + else { + // TODO : do stuff with the player + } + } + public static Player getPlayer(String id) { if (players.get(id) == null) throw new IllegalArgumentException("Could not retrieve PlayerID: " + id); @@ -162,6 +181,7 @@ private static String getUniquePlayerName(String attempt) { } private static Map players = new HashMap(); + private static Map connections = new HashMap(); private static Map activities = new HashMap(); private static Map> messageQueues = new HashMap>(); diff --git a/src/org/jpokemon/server/JPokemonServer.java b/src/org/jpokemon/server/JPokemonServer.java index 93fdef5..c25b54b 100644 --- a/src/org/jpokemon/server/JPokemonServer.java +++ b/src/org/jpokemon/server/JPokemonServer.java @@ -36,8 +36,7 @@ public static void main(String[] args) throws Exception { ServletContextHandler root = new ServletContextHandler(); root.setContextPath("/"); root.addServlet(new ServletHolder(new FileServlet()), "/*"); - root.addServlet(new ServletHolder(new PlayerServlet()), PlayerServlet.URL_PATH); - root.addServlet(new ServletHolder(new LoginServlet()), LoginServlet.URL_PATH); + root.addServlet(new ServletHolder(new JPokemonWebSocketServlet()), "/socket"); // Instantiate the server on the specified port logger.info("Server starting on port " + port); diff --git a/src/org/jpokemon/server/JPokemonWebSocket.java b/src/org/jpokemon/server/JPokemonWebSocket.java new file mode 100644 index 0000000..6ad6962 --- /dev/null +++ b/src/org/jpokemon/server/JPokemonWebSocket.java @@ -0,0 +1,53 @@ +package org.jpokemon.server; + +import java.io.IOException; + +import org.eclipse.jetty.websocket.WebSocket; +import org.jpokemon.manager.PlayerManager; +import org.jpokemon.manager.ServiceException; +import org.json.JSONException; +import org.json.JSONObject; + +public class JPokemonWebSocket implements WebSocket.OnTextMessage { + private Connection connection; + + @Override + public void onClose(int arg0, String arg1) { + } + + @Override + public void onOpen(Connection c) { + connection = c; + } + + @Override + public void onMessage(String arg0) { + try { + PlayerManager.dispatchRequest(this, new JSONObject(arg0)); + } catch (JSONException e) { + e.printStackTrace(); + } catch (ServiceException e) { + e.printStackTrace(); + } + } + + public void sendJson(JSONObject json) { + try { + connection.sendMessage(json.toString()); + } catch (IOException e) { + e.printStackTrace(); + } + } + + public void sendLog(String message) { + JSONObject json = new JSONObject(); + + try { + json.put("action", "log"); + json.put("message", message); + } catch (JSONException e) { + } + + sendJson(json); + } +} \ No newline at end of file diff --git a/src/org/jpokemon/server/JPokemonWebSocketServlet.java b/src/org/jpokemon/server/JPokemonWebSocketServlet.java new file mode 100644 index 0000000..75d94d8 --- /dev/null +++ b/src/org/jpokemon/server/JPokemonWebSocketServlet.java @@ -0,0 +1,15 @@ +package org.jpokemon.server; + +import javax.servlet.http.HttpServletRequest; + +import org.eclipse.jetty.websocket.WebSocket; +import org.eclipse.jetty.websocket.WebSocketServlet; + +public class JPokemonWebSocketServlet extends WebSocketServlet { + private static final long serialVersionUID = 1L; + + @Override + public WebSocket doWebSocketConnect(HttpServletRequest arg0, String arg1) { + return new JPokemonWebSocket(); + } +} \ No newline at end of file diff --git a/web/index.html b/web/index.html new file mode 100644 index 0000000..b385157 --- /dev/null +++ b/web/index.html @@ -0,0 +1,17 @@ + + + + + +

JPokemon loaded successfully I think

+ + \ No newline at end of file