일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- 이클립스
- 로또
- 다형성
- Full text
- Login with OAuth Authentication
- 전체텍스트
- 스프링
- 상속
- Validations
- 전자정부
- 야구게임
- 업캐스팅
- 가변인자
- Random
- 자바 야구게임
- 전체
- IBatis procedure
- 25가지 효율적인 sql작성법
- 자바
- 단축키
- 상속예제
- full text indexing
- 다운캐스팅
- jquery
- while
- 페이징
- 추상클래스
- 형변환
- angular2
Archives
- Today
- Total
nalaolla
웹 소켓 채팅_수정 본문
728x90
반응형
- 웹 소켓
-html5의 주요 api중 하나
-HTTP Protocol을 기반으로 웹 브라우저와 웹 서버 간의 양방향 통신을 지원하기 위한 표준
-클라이언트와 서버가 서로 실시간으로 메시지를 자유롭게 주고 받을 수 있음
-Windows Application 같은 어플리 케이션의 개발이 가능
-주로 채팅 서비스를 개발한다.
- JSR-356
-자바의 웹 소켓 표준
-JSR-356으로 웹 소켓 서버 기능을 개발하기는 매우힘듦
- WebSocketHandler
-JSR-356의 구현체로써 Spring에서 제공되고 있는 객체
-Servlet3의 웹 소켓 기능에 의존적. 때문에 Servlet3을 지원하지 않는 컨테이너에선 사용할 수 없다.
- Maven 의존 설정
1 2 3 4 5 | <dependency> <groupId>org.springframework</groupId> <artifactId>spring-websocket</artifactId> <version>4.1.6.RELEASE</version> </dependency> | cs |
- WebSocketHandler를 이용한 웹 소켓 서버 구현
| cs |
- WebSocket 설정
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:websocket="http://www.springframework.org/schema/websocket" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/websocket http://www.springframework.org/schema/websocket/spring-websocket-4.1.xsd"> <websocket:handlers> <websocket:mapping handler="echoHandler" path="/echo"/> <websocket:sockjs/> </websocket:handlers> <bean id="echoHandler" class="com.ktds.mcjang.chat.EchoHandler"/> </beans> | cs |
web.xml 수정
1 2 3 4 5 6 7 8 9 10 11 12 13 | <servlet> <servlet-name>dispatcherServlet</servlet-name> <servlet-class> org.springframework.web.servlet.DispatcherServlet </servlet-class> <init-param> <param-name>contextConfigLocation</param-name> <param-value> /WEB-INF/config/spring/dispatcherServlet.xml /WEB-INF/config/spring/ws-config.xml 추가 </param-value> </init-param> </servlet> | cs |
https://github.com/sockjs/sockjs-client
- jQuery와 sockjs를 이용한 Client개발
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 | <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Insert title here</title> <script type="text/javascript" src="<c:url value="/static/js/jquery/jquery-1.11.2.js"/>"></script> <script type="text/javascript" src="<c:url value="/static/js/sockjs-0.3.4.js"/>"></script> <script type="text/javascript"> $(document).ready(function(){ $("#sendBtn").click(function(){ sendMessage(); }); }); //websocket을 지정한 URL로 연결 var sock= new SockJS("<c:url value="/echo"/>"); //websocket 서버에서 메시지를 보내면 자동으로 실행된다. sock.onmessage = onMessage; //websocket 과 연결을 끊고 싶을때 실행하는 메소드 sock.onclose = onClose; function sendMessage(){ //websocket으로 메시지를 보내겠다. sock.send($("#message").val()); } //evt 파라미터는 websocket이 보내준 데이터다. function onMessage(evt){ //변수 안에 function자체를 넣음. var data = evt.data; $("#data").append(data+"<br/>"); /* sock.close(); */ } function onClose(evt){ $("#data").append("연결 끊김"); } </script> </head> <body> <input type="text" id="message"/> <input type="button" id="sendBtn" value="전송"/> <div id="data"></div> </body> </html> | cs |
<결과>
728x90
반응형
'SPRING' 카테고리의 다른 글
다국어 처리 - localeResolver, messageSource (0) | 2016.05.11 |
---|---|
Spring Properties Message 사용하기 (0) | 2016.05.11 |
웹 소켓(spring을 이용한 채팅) (0) | 2016.04.26 |
테스트 주도 개발(TDD-Test Driven Development) (0) | 2016.03.30 |
SqlSession + MyBatis + 프로시져 호출하여 우편번호 가져오기 (0) | 2016.03.26 |