Search in sources :

Example 6 with EzySimplePackage

use of com.tvd12.ezyfoxserver.socket.EzySimplePackage in project ezyfox-server by youngmonkeys.

the class EzySendResponseImpl method execute.

@Override
public void execute(EzyResponse response, EzySession recipient, boolean encrypted, boolean immediate, EzyTransportType transportType) {
    boolean success = false;
    EzyResponseApi responseApi = server.getResponseApi();
    EzyArray data = response.serialize();
    EzySimplePackage pack = newPackage(data, encrypted, transportType);
    pack.addRecipient(recipient);
    try {
        responseApi.response(pack, immediate);
        success = true;
    } catch (Exception e) {
        logger.error("send data: {}, to client: {} error", pack.getData(), recipient.getName(), e);
    } finally {
        pack.release();
    }
    boolean debug = server.getSettings().isDebug();
    if (debug && success && !ignoredLogCommands.contains(response.getCommand())) {
        logger.debug("send to: {} data: {}", recipient.getName(), data);
    }
}
Also used : EzySimplePackage(com.tvd12.ezyfoxserver.socket.EzySimplePackage) EzyArray(com.tvd12.ezyfox.entity.EzyArray) EzyResponseApi(com.tvd12.ezyfoxserver.api.EzyResponseApi)

Example 7 with EzySimplePackage

use of com.tvd12.ezyfoxserver.socket.EzySimplePackage in project ezyfox-server by youngmonkeys.

the class EzySocketResponseApiTest method secureResponseTest.

@Test
public void secureResponseTest() throws Exception {
    // given
    EzyArray data = EzyEntityFactory.EMPTY_ARRAY;
    byte[] bytes = RandomUtil.randomShortByteArray();
    EzyObjectToByteEncoder encoder = mock(EzyObjectToByteEncoder.class);
    when(encoder.toMessageContent(data)).thenReturn(bytes);
    EzySocketResponseApi sut = new EzySocketResponseApi(encoder);
    EzySimplePackage pack = new EzySimplePackage();
    pack.setData(data);
    pack.setEncrypted(true);
    pack.setTransportType(EzyTransportType.TCP);
    int sessionCount = RandomUtil.randomSmallInt() + 1;
    List<EzySession> sessions = RandomUtil.randomList(sessionCount, () -> {
        EzySession session = mock(EzySession.class);
        when(session.getConnectionType()).thenReturn(EzyConnectionType.SOCKET);
        return session;
    });
    pack.addRecipients(sessions);
    // when
    sut.response(pack);
    // then
    verify(encoder, times(1)).toMessageContent(data);
    verify(encoder, times(sessionCount)).encryptMessageContent(any(byte[].class), any(byte[].class));
}
Also used : EzySimplePackage(com.tvd12.ezyfoxserver.socket.EzySimplePackage) EzyArray(com.tvd12.ezyfox.entity.EzyArray) EzyObjectToByteEncoder(com.tvd12.ezyfox.codec.EzyObjectToByteEncoder) EzySession(com.tvd12.ezyfoxserver.entity.EzySession) EzySocketResponseApi(com.tvd12.ezyfoxserver.api.EzySocketResponseApi) Test(org.testng.annotations.Test)

Example 8 with EzySimplePackage

use of com.tvd12.ezyfoxserver.socket.EzySimplePackage in project ezyfox-server by youngmonkeys.

the class EzySimplePackageTest method test.

@Test
public void test() {
    EzySimplePackage pack = new EzySimplePackage();
    pack.setTransportType(EzyTransportType.TCP);
    assert pack.getTransportType() == EzyTransportType.TCP;
}
Also used : EzySimplePackage(com.tvd12.ezyfoxserver.socket.EzySimplePackage) BaseTest(com.tvd12.test.base.BaseTest) Test(org.testng.annotations.Test)

Example 9 with EzySimplePackage

use of com.tvd12.ezyfoxserver.socket.EzySimplePackage in project ezyfox-server by youngmonkeys.

the class EzySimpleNioUdpDataHandler method response.

protected void response(EzySession recipient, int responseCode) throws Exception {
    EzyArray responseData = EzyEntityFactory.newArray();
    responseData.add(responseCode);
    EzyArray responseCommand = EzyEntityFactory.newArray();
    responseCommand.add(EzyCommand.UDP_HANDSHAKE.getId());
    responseCommand.add(responseData);
    EzySimplePackage response = new EzySimplePackage();
    response.addRecipient(recipient);
    response.setTransportType(EzyTransportType.UDP);
    response.setData(responseCommand);
    responseApi.response(response);
    logger.debug("response udp handshake to: {}, code: {}", recipient, responseCode);
}
Also used : EzyArray(com.tvd12.ezyfox.entity.EzyArray)

Aggregations

EzySimplePackage (com.tvd12.ezyfoxserver.socket.EzySimplePackage)8 EzyArray (com.tvd12.ezyfox.entity.EzyArray)7 Test (org.testng.annotations.Test)5 EzySession (com.tvd12.ezyfoxserver.entity.EzySession)4 EzyObjectToByteEncoder (com.tvd12.ezyfox.codec.EzyObjectToByteEncoder)3 EzySocketResponseApi (com.tvd12.ezyfoxserver.api.EzySocketResponseApi)3 EzyResponseApi (com.tvd12.ezyfoxserver.api.EzyResponseApi)2 EzyObjectToStringEncoder (com.tvd12.ezyfox.codec.EzyObjectToStringEncoder)1 EzyWsResponseApi (com.tvd12.ezyfoxserver.api.EzyWsResponseApi)1 BaseTest (com.tvd12.test.base.BaseTest)1