Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package me.the_red_freak.minecraftwebsocketserver.websocket;
- import me.the_red_freak.minecraftwebsocketserver.serverstats.ServerStats;
- import me.the_red_freak.minecraftwebsocketserver.util.MessageHandler;
- import org.bukkit.Server;
- import org.java_websocket.WebSocket;
- import org.java_websocket.WebSocketImpl;
- import org.java_websocket.handshake.ClientHandshake;
- import org.java_websocket.server.WebSocketServer;
- import java.io.IOException;
- import java.lang.annotation.Annotation;
- import java.lang.reflect.Method;
- import java.net.InetAddress;
- import java.net.InetSocketAddress;
- import java.net.UnknownHostException;
- import java.util.Collection;
- /**
- * Created by Max Mernacher on 29.04.2017.
- */
- @SuppressWarnings("ALL")
- public class WebsocketServer extends WebSocketServer {
- public static WebsocketServer s;
- public WebsocketServer(int port) throws UnknownHostException {
- super(new InetSocketAddress(port));
- }
- public WebsocketServer(InetSocketAddress address) {
- super(address);
- }
- @Override
- public void onOpen(WebSocket conn, ClientHandshake handshake) {
- WebsocketSessionManager.getSessionManager().openSession(conn.getRemoteSocketAddress().getAddress().getHostAddress());
- System.out.println(conn.getRemoteSocketAddress().getAddress().getHostName() + " has connected to the Websocket server!");
- }
- @Override
- public void onClose(WebSocket conn, int code, String reason, boolean remote) {
- WebsocketSessionManager.getSessionManager().endSession(conn.getRemoteSocketAddress().getAddress().getHostAddress());
- System.out.println(conn.getRemoteSocketAddress().getHostName() + " has disconnected form the Websocket server");
- }
- @Override
- public void onMessage(WebSocket conn, String message) {
- System.out.println("Recieve Websocket packet - msg: " + message);
- ServerStats.instance.messageHandler(message, conn.getRemoteSocketAddress().getAddress());
- }
- public static void runServer() throws InterruptedException, IOException {
- WebSocketImpl.DEBUG = false;
- int port = ServerStats.getPlugin(ServerStats.class).getConfig().getInt("server.port");
- s = new WebsocketServer(port);
- s.start();
- System.out.println("Websocket server started on port: " + s.getPort());
- }
- @Override
- public void onError(WebSocket conn, Exception ex) {
- ex.printStackTrace();
- if (conn != null) {
- // some errors like port binding failed may not be assignable to a specific websocket
- }
- }
- public void sendToAll(String data) {
- Collection<WebSocket> con = connections();
- synchronized (con) {
- for (WebSocket c : con) {
- c.send(data);
- }
- }
- }
- public void sendToIP(String data, InetAddress address){
- Collection<WebSocket> con = connections();
- synchronized (con){
- for(WebSocket c : con){
- if(c.getRemoteSocketAddress().getAddress().equals(address)){
- c.send(data);
- }
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement