aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/de/torui/coflsky/websocket
diff options
context:
space:
mode:
authorFlorian Rinke <develop@torui.de>2021-10-14 17:05:42 +0200
committerFlorian Rinke <develop@torui.de>2021-10-14 17:05:42 +0200
commitfd39e0b0f1318d5dfa0c2617e10d825710b7dd01 (patch)
treef9b3dbbd20fb05eed3f217acc099ebddeabc7a6e /src/main/java/de/torui/coflsky/websocket
parent7eacb4b62638c1ef5d5d23d7c2a8d8b0045e6bbc (diff)
downloadCOFL-fd39e0b0f1318d5dfa0c2617e10d825710b7dd01.tar.gz
COFL-fd39e0b0f1318d5dfa0c2617e10d825710b7dd01.tar.bz2
COFL-fd39e0b0f1318d5dfa0c2617e10d825710b7dd01.zip
refactor websocket package to network package
Diffstat (limited to 'src/main/java/de/torui/coflsky/websocket')
-rw-r--r--src/main/java/de/torui/coflsky/websocket/NaiveSSLContext.java125
-rw-r--r--src/main/java/de/torui/coflsky/websocket/WSClient.java134
-rw-r--r--src/main/java/de/torui/coflsky/websocket/WSClientWrapper.java152
3 files changed, 0 insertions, 411 deletions
diff --git a/src/main/java/de/torui/coflsky/websocket/NaiveSSLContext.java b/src/main/java/de/torui/coflsky/websocket/NaiveSSLContext.java
deleted file mode 100644
index aea65c8..0000000
--- a/src/main/java/de/torui/coflsky/websocket/NaiveSSLContext.java
+++ /dev/null
@@ -1,125 +0,0 @@
-package de.torui.coflsky.websocket;
-/*
- * Copyright (C) 2015 Neo Visionaries Inc.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
- * either express or implied. See the License for the specific
- * language governing permissions and limitations under the
- * License.
- */
-import java.security.KeyManagementException;
-import java.security.NoSuchAlgorithmException;
-import java.security.NoSuchProviderException;
-import java.security.Provider;
-import java.security.cert.X509Certificate;
-import javax.net.ssl.SSLContext;
-import javax.net.ssl.TrustManager;
-import javax.net.ssl.X509TrustManager;
-
-
-/**
- * A factory class which creates an {@link SSLContext} that
- * naively accepts all certificates without verification.
- *
- * <pre>
- * // Create an SSL context that naively accepts all certificates.
- * SSLContext context = NaiveSSLContext.getInstance("TLS");
- *
- * // Create a socket factory from the SSL context.
- * SSLSocketFactory factory = context.getSocketFactory();
- *
- * // Create a socket from the socket factory.
- * SSLSocket socket = factory.createSocket("www.example.com", 443);
- * </pre>
- *
- * @author Takahiko Kawasaki
- */
-public class NaiveSSLContext
-{
- private NaiveSSLContext()
- {
- }
-
-
- /**
- * Get an SSLContext that implements the specified secure
- * socket protocol and naively accepts all certificates
- * without verification.
- */
- public static SSLContext getInstance(String protocol) throws NoSuchAlgorithmException
- {
- return init(SSLContext.getInstance(protocol));
- }
-
-
- /**
- * Get an SSLContext that implements the specified secure
- * socket protocol and naively accepts all certificates
- * without verification.
- */
- public static SSLContext getInstance(String protocol, Provider provider) throws NoSuchAlgorithmException
- {
- return init(SSLContext.getInstance(protocol, provider));
- }
-
-
- /**
- * Get an SSLContext that implements the specified secure
- * socket protocol and naively accepts all certificates
- * without verification.
- */
- public static SSLContext getInstance(String protocol, String provider) throws NoSuchAlgorithmException, NoSuchProviderException
- {
- return init(SSLContext.getInstance(protocol, provider));
- }
-
-
- /**
- * Set NaiveTrustManager to the given context.
- */
- private static SSLContext init(SSLContext context)
- {
- try
- {
- // Set NaiveTrustManager.
- context.init(null, new TrustManager[] { new NaiveTrustManager() }, null);
- }
- catch (KeyManagementException e)
- {
- throw new RuntimeException("Failed to initialize an SSLContext.", e);
- }
-
- return context;
- }
-
-
- /**
- * A {@link TrustManager} which trusts all certificates naively.
- */
- private static class NaiveTrustManager implements X509TrustManager
- {
- @Override
- public X509Certificate[] getAcceptedIssuers()
- {
- return null;
- }
-
-
- public void checkClientTrusted(X509Certificate[] certs, String authType)
- {
- }
-
-
- public void checkServerTrusted(X509Certificate[] certs, String authType)
- {
- }
- }
-} \ No newline at end of file
diff --git a/src/main/java/de/torui/coflsky/websocket/WSClient.java b/src/main/java/de/torui/coflsky/websocket/WSClient.java
deleted file mode 100644
index 8adce9a..0000000
--- a/src/main/java/de/torui/coflsky/websocket/WSClient.java
+++ /dev/null
@@ -1,134 +0,0 @@
-package de.torui.coflsky.websocket;
-
-import java.io.IOException;
-import java.net.URI;
-import java.security.NoSuchAlgorithmException;
-
-import javax.net.ssl.SSLContext;
-
-import com.google.gson.Gson;
-import com.google.gson.GsonBuilder;
-import com.neovisionaries.ws.client.WebSocket;
-import com.neovisionaries.ws.client.WebSocketAdapter;
-import com.neovisionaries.ws.client.WebSocketException;
-import com.neovisionaries.ws.client.WebSocketFactory;
-import com.neovisionaries.ws.client.WebSocketState;
-import net.minecraft.client.Minecraft;
-import de.torui.coflsky.CoflSky;
-import de.torui.coflsky.WSCommandHandler;
-import de.torui.coflsky.core.Command;
-import de.torui.coflsky.core.StringCommand;
-
-public class WSClient extends WebSocketAdapter {
-
-
- public static Gson gson;
-
-
- static {
- gson = new GsonBuilder()/*.setFieldNamingStrategy(new FieldNamingStrategy() {
- @Override
- public String translateName(Field f) {
-
- String name = f.getName();
- char firstChar = name.charAt(0);
- return Character.toLowerCase(firstChar) + name.substring(1);
- }
- })*/.create();
- }
- public URI uri;
- public WebSocket socket;
- public boolean shouldRun = false;
- public WebSocketState currentState = WebSocketState.CLOSED;
-
- public WSClient(URI uri) {
- this.uri = uri;
-
- }
-
- public void start() throws IOException, WebSocketException, NoSuchAlgorithmException {
- WebSocketFactory factory = new WebSocketFactory();
-
- /*// Create a custom SSL context.
- SSLContext context = NaiveSSLContext.getInstance("TLS");
-
- // Set the custom SSL context.
- factory.setSSLContext(context);
-
- // Disable manual hostname verification for NaiveSSLContext.
- //
- // Manual hostname verification has been enabled since the
- // version 2.1. Because the verification is executed manually
- // after Socket.connect(SocketAddress, int) succeeds, the
- // hostname verification is always executed even if you has
- // passed an SSLContext which naively accepts any server
- // certificate. However, this behavior is not desirable in
- // some cases and you may want to disable the hostname
- // verification. You can disable the hostname verification
- // by calling WebSocketFactory.setVerifyHostname(false).
- factory.setVerifyHostname(false);
- factory.*/
- factory.setConnectionTimeout(10*1000);
- this.socket = factory.createSocket(uri);
- this.socket.addListener(this);
- this.socket.connect();
- }
-
- public void stop() {
- System.out.println("Closing Socket");
- // socket.sendClose();
- socket.clearListeners();
-
- socket.disconnect();
- /*try {
- socket.getConnectedSocket().close();
- } catch (IOException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- } catch (WebSocketException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }*/
- System.out.println("Socket closed");
-
- }
-
- @Override
- public void onStateChanged(WebSocket websocket, WebSocketState newState) throws Exception {
- System.out.println("WebSocket Changed state to: " + newState);
- currentState = newState;
-
- if(newState == WebSocketState.CLOSED && shouldRun) {
- CoflSky.Wrapper.restartWebsocketConnection();
- }
-
- super.onStateChanged(websocket, newState);
- }
-
-
-
- @Override
- public void onTextMessage(WebSocket websocket, String text) throws Exception{
-
- //super.onTextMessage(websocket, text);
- System.out.println("Received: "+ text);
- Command cmd = gson.fromJson(text, Command.class);
- //System.out.println(cmd);
- WSCommandHandler.HandleCommand(cmd, Minecraft.getMinecraft().thePlayer);
-
- }
-
- public void SendCommand(Command cmd) {
- String json = gson.toJson(cmd);
- this.socket.sendText(json);
- }
-
- public void SendCommand(StringCommand sc) {
- String json = gson.toJson(sc);
- this.socket.sendText(json);
- }
-
-
-
-
-} \ No newline at end of file
diff --git a/src/main/java/de/torui/coflsky/websocket/WSClientWrapper.java b/src/main/java/de/torui/coflsky/websocket/WSClientWrapper.java
deleted file mode 100644
index 30e5bc8..0000000
--- a/src/main/java/de/torui/coflsky/websocket/WSClientWrapper.java
+++ /dev/null
@@ -1,152 +0,0 @@
-package de.torui.coflsky.websocket;
-
-import java.io.IOException;
-import java.net.URI;
-import java.net.URISyntaxException;
-import java.security.NoSuchAlgorithmException;
-import java.util.UUID;
-
-import com.neovisionaries.ws.client.WebSocketException;
-
-import de.torui.coflsky.CoflSky;
-import de.torui.coflsky.core.Command;
-import de.torui.coflsky.core.StringCommand;
-import de.torui.coflsky.minecraft_integration.PlayerDataProvider;
-import net.minecraft.client.Minecraft;
-import net.minecraft.util.ChatComponentText;
-import de.torui.coflsky.minecraft_integration.CoflSessionManager;
-
-
-public class WSClientWrapper {
- public WSClient socket;
- // public Thread thread;
- public boolean isRunning;
-
- private String[] uris;
-
-
- public WSClientWrapper(String[] uris) {
- this.uris = uris;
- }
-
- public void restartWebsocketConnection() {
- socket.socket.clearListeners();
- socket.stop();
-
- System.out.println("Sleeping...");
- Minecraft.getMinecraft().thePlayer.addChatMessage(new ChatComponentText("Lost connection to Coflnet, trying to reestablish the connection in 2 Seconds..."));
-
- try {
- Thread.sleep(2000);
- } catch (InterruptedException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
-
- socket = new WSClient(socket.uri);
- isRunning = false;
- start();
- }
-
-
- public boolean startConnection() {
-
- if(isRunning)
- return false;
-
- for(String s : uris) {
-
- System.out.println("Trying connection with uri=" + s);
-
- if(initializeNewSocket(s)) {
- return true;
- }
- }
-
- throw new Error("Could not connect to any websocket remote!");
- }
-
-
-
- private boolean initializeNewSocket(String uriPrefix) {
-
-
- String uri = uriPrefix;
- uri += "?version=" + CoflSky.VERSION;
-
- String username = PlayerDataProvider.getUsername();
- uri += "&player=" + username;
-
- //Generate a CoflSession
-
- try {
- CoflSessionManager.UpdateCoflSessions();
- String coflSessionID = CoflSessionManager.GetCoflSession(username).SessionUUID;
-
- uri += "&SId=" + coflSessionID;
-
- socket = new WSClient(URI.create(uri));
-
- boolean successfull = start();
- if(successfull) {
- socket.shouldRun = true;
- }
- return successfull;
- } catch(IOException e) {
- e.printStackTrace();
- }
-
- return false;
-
- }
-
- private synchronized boolean start() {
- if(!isRunning) {
- try {
-
- socket.start();
- isRunning = true;
-
- return true;
- } catch (IOException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- } catch (WebSocketException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- } catch (NoSuchAlgorithmException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- return false;
- }
- return false;
- }
-
- public synchronized void stop() {
- if(isRunning) {
- socket.shouldRun = false;
- socket.stop();
- isRunning = false;
- socket = null;
- }
- }
-
- public synchronized void SendMessage(Command cmd){
- if(this.isRunning) {
- this.socket.SendCommand(cmd);
- } else {
- Minecraft.getMinecraft().thePlayer.addChatMessage(new ChatComponentText("tried sending a callback to coflnet but failed. the connection must be closed."));
- }
-
- }
-
- public void SendMessage(StringCommand sc) {
- this.socket.SendCommand(sc);
- }
-
- public String GetStatus() {
- return "" + isRunning + " " +
- (this.socket!=null ? this.socket.currentState.toString() : "NOT_INITIALIZED");
- }
-}