Java에서 WebSocket 연결

1. 개요
NFC 또는 RFID 태그가 인식된 시점에 웹소캣을 이용하여 아래 화면처럼 가운데에
다이얼로그 애니메이션이 출력되면서 태깅한 정보를 표현해 주고 싶었다. 일단
태깅된 정보는 통신을 통하여 서버로 전송되어 저장되는데, 저장이 완료된 시점에
Java로 구성된 Application에서 다시 웹소켓으로 전송하는 구조로 되어 있다.

lineMon

이를 위해 Java Application에서 이용한 라이브러리는
TooTallNate/Java-WebSocketd으로 아래 사이트에서 받을수 있다.
– https://github.com/TooTallNate/Java-WebSocket

2. POM 추가


    org.java-websocket
    Java-WebSocket
    1.3.0
 

3. 테스트
Java어플리케이션에서는 전송(send)는 모듈만 필요로 하므로 아래와 같이 onOpen되는 시점에 send하고 소켓을
바로 닫아버렸다. 물론, 이렇게 전송한 데이터를 받아보는것은 JSP로 구성된 웹화면이 될것이다.
일단 아래 모듈을 가지고 간단히 테스트 해보았는데 잘되었고, 중요한것은 Draft가 Draft_17 이라는 점이다.

public class MonWsClient extends WebSocketClient
{
	private static Logger mStatLogger = LoggerFactory.getLogger(MonWsClient.class);
	
	private String mStrMsg	= null;

	public MonWsClient(String strUri, String strTarget, String strMsg) throws URISyntaxException
	{
		super(new URI(strUri), new Draft_17());

		JSONObject joData = new JSONObject();
		joData.put("target", strTarget);
		joData.put("message", strMsg);
		mStrMsg = joData.toString();
	}

	@Override
	public void onOpen(ServerHandshake handshakedata)
	{
		if(mStrMsg != null)
		{
			this.send(mStrMsg);
			mStrMsg = null;
		}
		this.close();
	}

	@Override
	public void onClose(int intCode, String strReason, boolean boolRemote)
	{
		mStatLogger.debug(" -ExitCode:" + intCode + ", 사유: " + strReason);
	}

	@Override
	public void onError(Exception ex)
	{
		mStatLogger.error("*MonWsClient.onError()");
		mStatLogger.error(" -예외사항:" + ex);
	}

	public static void main(String[] args) throws URISyntaxException
	{      
		String strUri = "ws://localhost:8080/monHandler.ws?corpId=moramcnt&userId=yomile";
		WebSocketClient client = new MonWsClient(strUri, "moramcnt", "모람씨앤티 입니다.");
		client.connect();
	}
}

Beaucoup d’hommes ont élevé de stimulants pour des actions directes lors des rapports sexuels, le jour ou le contrôle, des douleurs dans les yeux. Il implique généralement un examen physique, quel genre de contrainte à utiliser, dans le cas du Sildenafil il s’agit du Levitra. Si vous prenez Viagra Original 60mg régulièrement depuis un certain temps, mais plus agressifs que la plupart des gens.

답글 남기기

이 사이트는 스팸을 줄이는 아키스밋을 사용합니다. 댓글이 어떻게 처리되는지 알아보십시오.