그래서 저는 netty가있는 서버를 작성해 왔으며 다른 것을 작성하지 않았으므로 파이프 라인에 대한 내 접근 방식이 올바른지 궁금합니다.
나는 서버 및 클라이언트, ObjectEncoder 및 디코더에 2 개의 기본 처리기가 있으며, 예를 들어 UserAuthenticationHandler, UserActionHandler가 있고 각기 다른 패킷 및 패스를 처리하는 등 서버에 추가하는 각 기능에 대한 새 처리기를 만들려고 생각했습니다. 그것들을 상응하는 클래스들에 할당한다.
이것은 내 마음에 들었던 접근 방법 중 하나입니다. 다른 하나는 모든 기능을 처리하는 하나의 처리기이므로 모든 것을 처리하기 위해 큰 스위치를 작성해야한다는 것을 의미합니다.
첫 번째 방법을 사용하는 것이 좋습니까? 아니면 두 번째 방법을 사용해야합니까? 첫 번째 방법 내 핸들러는 괜찮습니까?
public class UserAuthenticationHandler extends AbstractPacketHandler {
private User user;
public UserAuthenticationHandler(User user, DatabaseConnection databaseConnection) {
this.user = user;
new UserAuthenticator(databaseConnection);
}
@Override
protected void handlePacket(Packet packet) {
switch (packet.packetType){
case "START_LOGIN":
UserAuthenticator.startLoginProcess(packet, user);
}
}
@Override
public void channelActive(ChannelHandlerContext ctx) throws Exception {
super.channelActive(ctx);
}
public User getUser(){
return user;
}
}
두 번째 방법
의
지금까지 시도한 코드 샘플을 제공해주십시오. 그렇게하면 더 효과적으로 당신을 도울 수 있습니다. – Ivonet
@ivonet 현재 접근 방식을 추가했습니다. – Bleo