Struttura della query sulla definizione di nuovi eventi in cima ad un insieme esistente di eventi per un protocollo di presa

StackOverflow https://stackoverflow.com/questions/6317684

  •  26-10-2019
  •  | 
  •  

Domanda

ho scritto un programma server Java e client utilizzando JBoss Netty. Per poter inviare alcuni dati per il client remoto e ricevere dati indietro da loro, ho definito eventi e gestori per ogni evento. Sul filo, ogni evento è solo un singolo byte (opcode) un'intestazione seguita da byte del messaggio. Inizialmente avevo sostenuto solo TCP e aveva definito eventi come LOG_IN, LOG_OUT, DATA_IN, DATA_OUT ecc nel mio programma. Per es

public static final int LOG_IN = 0x08;
public static final int LOG_OUT = 0x0a;

Poi ho deciso di sostenere UDP anche e finito per avere eventi come LOGIN_UDP, LOGIN_TCP, DATA_OUT_TCP o DATA_OUT_UDP ecc in modo che in base all'evento generato il gestore di eventi corretta otterrebbe l'evento e scrivere alla presa appropriata e porta remota.

Come si può vedere il primo problema che sto affrontando è che ho quasi raddoppiato il numero di eventi definiti e gestori di eventi sull'aggiunta di UDP. C'è un modo migliore per avvicinarsi a questo scenario?

Il problema secondo (minore) sto affrontando è che eventi come DATA_OUT ha senso quando si sta scrivendo dal server al client, ma quando si riceve lo stesso evento al lato client "DATA_OUT" non rende tale senso, dal momento che è in realtà i dati in entrata per il cliente. Per il momento, ho un decoder che si tradurrà DATA_OUT a DATA_IN. È questo l'approccio migliore?

È stato utile?

Soluzione

È possibile utilizzare modello di fabbrica per creare il collegamento sulla base del canale di tipo vale a dire TCP o UDP. Altri dettagli verranno è necessario definire una volta, in questo caso

Invece Calling DATA_OUT si può chiamare come SERVER_OUT stesso modo SERVER_IN

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top