From c31399155a6f916249ccf19db09945e85787c126 Mon Sep 17 00:00:00 2001 From: NorbiPeti Date: Sat, 1 Apr 2017 11:27:34 +0200 Subject: [PATCH] Finished porting, successfully got data --- .classpath | 5 + .settings/org.eclipse.core.resources.prefs | 1 + pom.xml | 11 ++- .../buttondevteam/PlaceMinecraft2/App.java | 28 ++++-- .../PlaceMinecraft2/PlaceWebSocket.java | 99 ++++++++----------- 5 files changed, 81 insertions(+), 63 deletions(-) diff --git a/.classpath b/.classpath index af1430b..52f2acf 100644 --- a/.classpath +++ b/.classpath @@ -22,5 +22,10 @@ + + + + + diff --git a/.settings/org.eclipse.core.resources.prefs b/.settings/org.eclipse.core.resources.prefs index f9fe345..c140e65 100644 --- a/.settings/org.eclipse.core.resources.prefs +++ b/.settings/org.eclipse.core.resources.prefs @@ -2,3 +2,4 @@ eclipse.preferences.version=1 encoding//src/main/java=UTF-8 encoding//src/test/java=UTF-8 encoding/=UTF-8 +encoding/src=UTF-8 diff --git a/pom.xml b/pom.xml index 227126c..2dd251f 100644 --- a/pom.xml +++ b/pom.xml @@ -55,8 +55,12 @@ jitpack.io https://jitpack.io/ + + clojars.org + http://clojars.org/repo + - + junit @@ -70,5 +74,10 @@ 1.11.2-R0.1-SNAPSHOT provided + + com.github.TooTallNate + Java-WebSocket + Java-WebSocket-1.3.1 + diff --git a/src/main/java/buttondevteam/PlaceMinecraft2/App.java b/src/main/java/buttondevteam/PlaceMinecraft2/App.java index a48fa47..619d7f5 100644 --- a/src/main/java/buttondevteam/PlaceMinecraft2/App.java +++ b/src/main/java/buttondevteam/PlaceMinecraft2/App.java @@ -1,13 +1,29 @@ package buttondevteam.PlaceMinecraft2; +import java.net.URISyntaxException; + +import javax.net.ssl.SSLContext; +import javax.net.ssl.SSLSocketFactory; + /** * Hello world! * */ -public class App -{ - public static void main( String[] args ) - { - System.out.println( "Hello World!" ); - } +public class App { + public static void main(String[] args) throws URISyntaxException { + PlaceWebSocket placews = new PlaceWebSocket( + "wss://..."); + SSLContext sslContext = null; + try { + sslContext = SSLContext.getInstance("TLS"); + sslContext.init(null, null, null); // will use java's default key and trust store which is sufficient unless you deal with self-signed certificates + SSLSocketFactory factory = sslContext.getSocketFactory();// (SSLSocketFactory) SSLSocketFactory.getDefault(); + placews.setSocket(factory.createSocket()); + if (!placews.connectBlocking()) + System.out.println("Failed to connect."); + } catch (Exception e) { + e.printStackTrace(); + } + System.out.println("Finished"); + } } diff --git a/src/main/java/buttondevteam/PlaceMinecraft2/PlaceWebSocket.java b/src/main/java/buttondevteam/PlaceMinecraft2/PlaceWebSocket.java index c6f8771..1eda7c3 100644 --- a/src/main/java/buttondevteam/PlaceMinecraft2/PlaceWebSocket.java +++ b/src/main/java/buttondevteam/PlaceMinecraft2/PlaceWebSocket.java @@ -1,65 +1,52 @@ package buttondevteam.PlaceMinecraft2; -import com.google.gson.Gson; -import com.google.gson.JsonObject; +import org.java_websocket.client.WebSocketClient; +import org.java_websocket.handshake.ServerHandshake; -public class PlaceWebSocket { //Ported from https://gist.github.com/teaearlgraycold/76877c8f262de24becc081ad96759730 - private Gson json; - public JsonObject recv_frame() - { - //frame = super().recv_frame() - return json.fromJson(frame.data.decode('utf-8')); +import com.google.gson.JsonObject; +import com.google.gson.JsonParser; + +import java.net.URI; +import java.net.URISyntaxException; + +public class PlaceWebSocket extends WebSocketClient { // Ported from https://gist.github.com/teaearlgraycold/76877c8f262de24becc081ad96759730 + public PlaceWebSocket(String wslink) throws URISyntaxException { + super(new URI(wslink)); + /* + * insert_queue = 0 inserted_count = 0 max_queue_size = 100 save_frame_per = 20000 + */ } -public void main() -{ url = "wss://..."; - ws = create_connection(url, class_=PlaceWebSocket); - insert_queue = 0 - inserted_count = 0 - max_queue_size = 100 - save_frame_per = 20000 + @Override + public void onOpen(ServerHandshake handshakedata) { + System.out.println("Status: " + handshakedata.getHttpStatusMessage()); + } - while(true) - { try - { - frame = ws.recv_frame(); - print(frame); + @Override + public void onMessage(String message) { + JsonObject frame = new JsonParser().parse(message).getAsJsonObject(); + String type = frame.get("type").getAsString(); + JsonObject payload = frame.get("payload").getAsJsonObject(); + System.out.println("Type: " + type); + if (type.equals("place")) { + int x = payload.get("x").getAsInt(); + int y = payload.get("y").getAsInt(); + String color = payload.get("color").getAsString(); + String author = payload.get("author").getAsString(); + System.out.println("X: " + x + " - Y: " + y + " - Color: " + color + " - Author: " + author); + } else if (type.equals("activity")) { + String count = payload.get("count").getAsString(); + System.out.println("Count: " + count); + } + } - if(frame['type'] == 'place') - { - c.execute('''INSERT INTO placements VALUES (?, ?, ?, ?, ?)''', [ - int(time.time()), - frame['payload']['x'], - frame['payload']['y'], - frame['payload']['color'], - frame['payload']['author'] - ]) - insert_queue += 1 - inserted_count += 1 - } - else if(frame['type'] == 'activity') - { - c.execute('''INSERT INTO activity VALUES (?, ?)''', [ - int(time.time()), - frame['payload']['count'] - ]) - insert_queue += 1 - inserted_count += 1 + @Override + public void onClose(int code, String reason, boolean remote) { + System.out.println("Code: " + code + " - Reason: " + reason + " - Remote: " + remote); + } - if insert_queue >= max_queue_size: - conn.commit() - insert_queue = 0 - if inserted_count % save_frame_per == 0: - save_bitmap(c, conn) - except KeyboardInterrupt: - print('Exiting safely...') - conn.commit() - conn.close() - sys.exit() - except Exception as e: - print('Error occured: {}'.format(str(e))) - - -if __name__ == '__main__': - main() + @Override + public void onError(Exception ex) { + System.out.println(ex); + } }