[WIP] try RxJava
This commit is contained in:
@@ -2,6 +2,8 @@ package mc.server.logic;
|
||||
|
||||
import com.google.inject.Inject;
|
||||
import io.netty.channel.Channel;
|
||||
import io.reactivex.rxjava3.core.Scheduler;
|
||||
import io.reactivex.rxjava3.schedulers.Schedulers;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import mc.protocol.handshake.client.HandshakePacket;
|
||||
@@ -17,12 +19,21 @@ public class HandshakeLogic {
|
||||
public void setup() {
|
||||
log.info("HandshakeLogic setup");
|
||||
rxProvider.getPacketObservable(HandshakePacket.class)
|
||||
.observeOn(Schedulers.computation())
|
||||
.doOnNext(container -> handle(container.getChannel(), container.getPacket()))
|
||||
.subscribe();
|
||||
}
|
||||
|
||||
private void handle(Channel channel, HandshakePacket packet) {
|
||||
log.error("THREAD: {}|{}", Thread.currentThread().getId(), Thread.currentThread().getName());
|
||||
|
||||
log.info("HandshakePacket handle");
|
||||
channel.attr(NettyConstants.ATTR_STATE).set(packet.getNextState());
|
||||
|
||||
// try {
|
||||
// Thread.sleep(20_000);
|
||||
// } catch (InterruptedException e) {
|
||||
// e.printStackTrace();
|
||||
// }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
package mc.server.logic;
|
||||
|
||||
import com.google.inject.Inject;
|
||||
import io.reactivex.rxjava3.schedulers.Schedulers;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import mc.protocol.login.client.LoginStartPacket;
|
||||
@@ -20,8 +21,10 @@ public class LoginLogic {
|
||||
public void setup() {
|
||||
log.info("LoginLogic setup");
|
||||
rxProvider.getPacketObservable(LoginStartPacket.class)
|
||||
.observeOn(Schedulers.computation())
|
||||
.map(NetworkContainer::getChannel)
|
||||
.doOnNext(channel -> {
|
||||
log.error("THREAD: {}|{}", Thread.currentThread().getId(), Thread.currentThread().getName());
|
||||
log.info("LoginLogic handle");
|
||||
|
||||
DisconnectPacket disconnectPacket = new DisconnectPacket();
|
||||
|
||||
@@ -2,6 +2,7 @@ package mc.server.logic;
|
||||
|
||||
import com.google.inject.Inject;
|
||||
import io.netty.channel.Channel;
|
||||
import io.reactivex.rxjava3.schedulers.Schedulers;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import mc.protocol.ProtocolConstant;
|
||||
@@ -27,11 +28,14 @@ public class StatusLogic {
|
||||
public void setup() {
|
||||
log.info("StatusLogic setup");
|
||||
rxProvider.getPacketObservable(StatusServerRequest.class)
|
||||
.observeOn(Schedulers.computation())
|
||||
.doOnNext(container -> status(container.getChannel(), container.getPacket()))
|
||||
.subscribe();
|
||||
|
||||
rxProvider.getPacketObservable(PingPacket.class)
|
||||
.observeOn(Schedulers.computation())
|
||||
.doOnNext(container -> {
|
||||
log.error("THREAD: {}|{}", Thread.currentThread().getId(), Thread.currentThread().getName());
|
||||
log.info("StatusLogic ping handle");
|
||||
container.getChannel().writeAndFlush(container.getPacket()).channel().disconnect();
|
||||
})
|
||||
@@ -39,6 +43,7 @@ public class StatusLogic {
|
||||
}
|
||||
|
||||
private void status(Channel channel, StatusServerRequest packet) throws IOException {
|
||||
log.error("THREAD: {}|{}", Thread.currentThread().getId(), Thread.currentThread().getName());
|
||||
log.info("StatusLogic handle");
|
||||
log.info("{}", packet);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user