Netty-spring-example with JPA

TCP communication server with Netty, spring-boot, spring-data-jpa

This TCP Communication Service is a simple example for developer who want to make tcp service with Spring-Boot, Spring-Data-JPA and Netty.

Feature

  • Telnet Client can send message to other telnet client.
  • Telnet Client can retrieve User Information from RDBMS(H2 DB).

Install

This example uses embedded DBMS(h2 db). So, you don't need to install any DBMS. But you have to use below DDL and DML.

CREATE TABLE USER
(
    ID BIGINT AUTO_INCREMENT PRIMARY KEY NOT NULL,
    PHONE_NUMBER VARCHAR(255),
    USERNAME VARCHAR(255),
    USE_YN BOOLEAN DEFAULT TRUE
);
CREATE UNIQUE INDEX UK_SB8BBOUER5WAK8VYIIY4PF2BX_INDEX_2 ON USER (USERNAME);
INSERT INTO PUBLIC.USER (ID, PHONE_NUMBER, USERNAME, USE_YN) VALUES (1, '010-1111-2222', 'zbum', true);
INSERT INTO PUBLIC.USER (ID, PHONE_NUMBER, USERNAME, USE_YN) VALUES (2, '010-1111-3333', 'manty', true);
INSERT INTO PUBLIC.USER (ID, PHONE_NUMBER, USERNAME, USE_YN) VALUES (3, '010-1111-4444', 'jibumjung', true);

How to use

  • Run com.zbum.example.socket.server.netty.Application with IDE or Maven
    $ mvn spring-boot:run
  • Connect to this server by telnet command.
    $ telnet localhost 8090
    Trying ::1...
    Connected to localhost.
    Escape character is '^]'.
    Your channel key is /0:0:0:0:0:0:0:1:57220
  • Your channel key (ID) is /0:0:0:0:0:0:0:1:57220
  • Connect to this server by telnet command on annother terminal.
    $ telnet localhost 8090
    Trying ::1...
    Connected to localhost.
    Escape character is '^]'.
    Your channel key is /0:0:0:0:0:0:0:1:57221
  • From now, you can send message to /0:0:0:0:0:0:0:1:57220 channel by below
    /0:0:0:0:0:0:0:1:57220::I Love You!!!
  • Then, you can receive Message like below
    $ telnet localhost 8090
    Trying ::1...
    Connected to localhost.
    Escape character is '^]'.
    Your channel key is /0:0:0:0:0:0:0:1:57220
    I Love You!!!
  • Then, you can retrieve user data by command below.
    $ telnet localhost 8090
    Trying ::1...
    Connected to localhost.
    Escape character is '^]'.
    Your channel key is /0:0:0:0:0:0:0:1:63390
    name?zbum
    010-1111-2222
    name?manty
    010-1111-3333
    name?all
    zbum:010-1111-2222
    manty:010-1111-3333