Адаптер сервера и смена ореинтации отмены событий (теперь адаптер должен вернуть true чтобы продолжить обработку пакета и false если пакет обрабатывать не нужно)
This commit is contained in:
36
src/main/java/com/rosetta/im/ServerAdapter.java
Normal file
36
src/main/java/com/rosetta/im/ServerAdapter.java
Normal file
@@ -0,0 +1,36 @@
|
||||
package com.rosetta.im;
|
||||
|
||||
import io.orprotocol.Server;
|
||||
import io.orprotocol.ServerListener;
|
||||
import io.orprotocol.client.Client;
|
||||
import io.orprotocol.packet.Packet;
|
||||
|
||||
public class ServerAdapter implements ServerListener {
|
||||
|
||||
@Override
|
||||
public void onServerStart(Server server) {}
|
||||
|
||||
@Override
|
||||
public void onServerStop(Server server) {}
|
||||
|
||||
@Override
|
||||
public boolean onClientConnect(Server server, Client client) {
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onClientDisconnect(Server server, Client client) {}
|
||||
|
||||
@Override
|
||||
public void onError(Server server, Exception exception) {
|
||||
System.out.println("Server error: " + exception.getMessage());
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onPacketReceived(Server server, Client client, Packet packet) {
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -130,9 +130,9 @@ public class Server extends WebSocketServer {
|
||||
PacketExecutor executor = executorClass.getConstructor().newInstance();
|
||||
executor.settings = this.settings;
|
||||
executor.context = this.context;
|
||||
if(listener != null && listener.onPacketReceived(this, client, packet)) {
|
||||
if(listener != null && !listener.onPacketReceived(this, client, packet)) {
|
||||
/**
|
||||
* Если слушатель сервера вернул true, пакет не обрабатываем.
|
||||
* Если слушатель сервера вернул false, пакет не обрабатываем.
|
||||
*/
|
||||
return;
|
||||
}
|
||||
@@ -155,7 +155,7 @@ public class Server extends WebSocketServer {
|
||||
if(this.listener == null){
|
||||
return;
|
||||
}
|
||||
if(this.listener.onClientConnect(this, client)) {
|
||||
if(!this.listener.onClientConnect(this, client)) {
|
||||
client.disconnect(ServerFailures.SERVER_NOT_ACCEPT_CLIENT);
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -6,19 +6,19 @@ import io.orprotocol.packet.Packet;
|
||||
public interface ServerListener {
|
||||
/**
|
||||
* Сервер запущен
|
||||
* @param server
|
||||
* @param server сервер
|
||||
*/
|
||||
void onServerStart(Server server);
|
||||
/**
|
||||
* Сервер остановлен
|
||||
* @param server
|
||||
* @param server сервер
|
||||
*/
|
||||
void onServerStop(Server server);
|
||||
/**
|
||||
* Клиент подключился
|
||||
* @param server
|
||||
* @param client
|
||||
* @return если возвращено true значит клиент не будет подключен к серверу выбросится
|
||||
* Клиент подключился, вернуть false чтобы отклонить подключение
|
||||
* @param server сервер
|
||||
* @param client клиент
|
||||
* @return если возвращено false значит клиент не будет подключен к серверу выбросится
|
||||
* ошибка SERVER_NOT_ACCEPT_CLIENT
|
||||
*/
|
||||
boolean onClientConnect(Server server, Client client);
|
||||
@@ -30,16 +30,16 @@ public interface ServerListener {
|
||||
void onClientDisconnect(Server server, Client client);
|
||||
/**
|
||||
* Произошла ошибка сервера
|
||||
* @param server
|
||||
* @param exception
|
||||
* @param server сервер
|
||||
* @param exception исключение
|
||||
*/
|
||||
void onError(Server server, Exception exception);
|
||||
/**
|
||||
* Пакет получен от клиента
|
||||
* @param server
|
||||
* @param client
|
||||
* @param packet
|
||||
* @return если возвращено true значит пакет не будет обработан дальше
|
||||
* @param server сервер
|
||||
* @param client клиент
|
||||
* @param packet пакет
|
||||
* @return если возвращено false значит пакет не будет обработан дальше
|
||||
*/
|
||||
boolean onPacketReceived(Server server, Client client, Packet packet);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user