package com.devjones.util.websocket;
import javax.websocket.OnClose;
import javax.websocket.OnError;
import javax.websocket.OnMessage;
import javax.websocket.OnOpen;
import javax.websocket.server.ServerEndpoint;
@ServerEndpoint("/mySock")
public class WebSocket {
@OnOpen
public void handleOpen() {
System.out.println("client is now connected...");
}
@OnMessage
public String handleMessage(String message) {
System.out.println("클라이언트에게 받은 메시지 : " + message);
String replymessage = "echo : " + message;
System.out.println("클라이언트에게 보낼 메시지 : " + replymessage);
return replymessage;
}
@OnClose
public void handleClose() {
System.out.println("클라이언트와 연결이 끊겼습니다.");
}
@OnError
public void handleError(Throwable t) {
t.printStackTrace();
}
}
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<form>
<input id="textMessage">
<input type="button" onclick="sendMessage()" value="Send">
<input type="button" onclick="disconnect()" value="Disconnect">
</form>
<br>
<textarea rows="10" cols="50" id="messageTextArea"></textarea>
<script type="text/javascript">
var webSocket = new WebSocket("ws://localhost:8080/TestWebProject/mySock");
var messageTextArea = document.getElementById("messageTextArea");
webSocket.onopen = function(message) {
messageTextArea.value += "Server Connect...\n";
};
webSocket.onclose = function(message) {
messageTextArea.value += "Server Disconnect...\n";
};
webSocket.onerror = function(message) {
messageTextArea.value += "error...\n";
};
webSocket.onmessage = function(message) {
messageTextArea.value += "Receive from Server => " + message.data + "\n";
};
function sendMessage() {
var message = document.getElementById("textMessage");
messageTextArea.value += "Send to Server => " + message.value + "\n";
webSocket.send(message.value);
message.value = "";
}
function disconnect() {
webSocket.close();
}
</script>
</body>
</html>
출처: