운영 환경:
톰캣7 이상
크롬
버전 4+에서 지원됨
파이어폭스
버전 4+에서 지원됨
인터넷 익스플로러
버전 10 이상에서 지원됨
오페라
버전 10 이상에서 지원됨
원정 여행
버전 5+에서 지원됨
HTML 코드:
<!DOCTYPE html>
<html><head>
<title>index.html</title>
<meta charset=UTF-8>
</head>
<body>
<div>
<input type="hidden" value="시작" οnclick="start()" />
</div>
<사업부 아이디="메시지"></div>
<스크립트 유형="텍스트/자바스크립트">
var webSocket=null;
함수 연결() {
webSocket = new WebSocket('ws://10.0.0.77:8080/webSocket/websocket');
webSocket.onerror = 함수(이벤트) {
onError(이벤트);
};
webSocket.onopen = 함수(이벤트) {
onOpen(이벤트);
};
webSocket.onmessage = 함수(이벤트) {
onMessage(이벤트);
};
webSocket.onclose = 함수(이벤트) {
onClose(이벤트);
};
}
함수 onMessage(이벤트) {
document.getElementById('messages').innerHTML += '<br />' + event.data;
}
함수 onOpen(이벤트) {
document.getElementById('messages').innerHTML = '연결 설정됨';
}
함수 onClose(이벤트) {
document.getElementById('messages').innerHTML = '연결이 종료되었습니다!';
webSocket.close();
}
함수 onError(이벤트) {
알림(event.data);
경고("오류");
}
함수 시작() {
var value = document.getElementById('onfoc').value;
webSocket.send(값);
}
함수 포커스펀(){
document.getElementById('onfoc').value="";
}
</스크립트>
<입력 유형="버튼" 값="연결" οnclick="연결();" />
메시지: <input type="text" id="onfoc" οnfοcus="focusfun();" value="메시지를 입력하세요" />
<input type="버튼" οnclick="시작();" value="发送" />
<input type="버튼" οnclick="onClose();" 값="닫기" />
</body>
</html>
자바 배경 코드:
import java.io.IOException;
import java.util.ArrayList;
import javax.websocket.OnClose;
import javax.websocket.OnMessage;
import javax.websocket.OnOpen;
import javax.websocket.Session;
import javax.websocket.server.ServerEndpoint;
@ServerEndpoint(값 = "/websocket")
공개 클래스 WebSocket {
@SuppressWarnings("원시 유형")
비공개 정적 ArrayList mmiList = new ArrayList();
@OnMessage
public void onMessage(문자열 메시지, 세션 세션)
IOException 발생, InterruptedException {
// 테스트 목적으로 클라이언트 메시지 출력
System.out.println("수신: " + message);
System.out.println("mmiList.size() = " + mmiList.size());
send(메시지,세션);
}
@SuppressWarnings("선택하지 않음")
@OnOpen
공개 무효 onOpen(세션 세션) {
mmiList.add(session);
System.out.println("로그인: = " + session.getId() + " 클라이언트 연결됨");
send("코드는 '"+session.getId() +"' 온라인입니다. ",session);
}
@OnClose
public void onClose(세션 세션) {
mmiList.remove(세션);
System.out.println("퇴출자: = " + session.getId() + " Connection closed");
send("코드는 '"+session.getId() +"' offline입니다.",session);
}
public void send(String message, Session session){
세션 se = null;
for (int i = 0; i < mmiList.size(); i++) {
se = (세션)mmiList.get(i);
노력하다 {
se.getBasicRemote().sendText("코드명이 ' " + session.getId() + "'인 사람이 메시지를 보냅니다: " + message);
} 잡기(IOException e) {
// TODO 자동 생성 catch 블록
e.printStackTrace();
}
} }
}