안녕하세요 오늘은 spring 이랑 python 데이터 전송 방버벵 대해 설명해 드리겠습니다.
websocket 방식으로 데이터를 전송 하겠습니다.
서버 : spring websocket
클라이언트: python
spring 설정
pom.xml 파일
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-websocket</artifactId>
<version>4.2.4.RELEASE</version>
</dependency>
spring-servlet.xml 파일
<beans
xmlns:websocket="http://www.springframework.org/schema/websocket"
xsi:schemaLocation="
http://www.springframework.org/schema/websocket/spring-websocket-4.1.xsd
....
....
">
<bean id="echoHandler" class="com.bit.web.util.EchoHandler" />
<websocket:handlers>
<websocket:mapping handler="echoHandler" path="/echo" />
<websocket:handlers>
EchoHandler.java 파일
package com.bit.web.util;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.socket.CloseStatus;
import org.springframework.web.socket.TextMessage;
import org.springframework.web.socket.WebSocketSession;
import org.springframework.web.socket.handler.TextWebSocketHandler;
import com.bit.site.service.ReservationService;
public class EchoHandler extends TextWebSocketHandler {
// 클라이언트와 연결 이후에 실행되는 메서드
@Override
public void afterConnectionEstablished(WebSocketSession session) throws Exception {
System.out.println("afterConnectionEstablished"+session);
}
// 클라이언트가 서버로 메시지를 전송했을 때 실행되는 메서드
@Override
protected void handleTextMessage(WebSocketSession session, TextMessage message) throws Exception {
System.out.println("handleTextMessage"+session+"message"+message);
String msg = message.getPayload();
System.out.println(msg);
System.out.println("실행");
}
// 클라이언트와 연결을 끊었을 때 실행되는 메소드
@Override
public void afterConnectionClosed(WebSocketSession session, CloseStatus status) throws Exception {
System.out.println("afterConnectionClosed");
}
}
python 코드
cmd 창으로 들어가서 pip install websocket 설치하셔야합니다.
from socket import *
from select import select
import sys
import time
from websocket import create_connection
def sendmessage(msg):
try:
ws = create_connection("ws://localhost:8080/spring-websocket/echo")
print("Sending")
ws.send(msg)
ws.close()
except Exception as e:
print(e)