Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- python subprocess
- semanage
- gcc 업데이트
- linux시간으로 변경
- gcc regex
- telegraf
- c3 초
- 정규식 활용
- python os
- 백준
- grafana dashboard
- snmp
- 정규식 컴파일
- InfluxDB
- c3 축 없애기
- c3 축 가리기
- influxdb 설치
- snmp test
- selinux port 등록
- 정규식 문자열 출력
- centos pyhon 설치
- python popen
- 1697
- subporcess path
- CentOS7
- c++ 정규식
- g++ 업데이트
- regex_search
- c3 step graph
- c3 second
Archives
- Today
- Total
리셋 되지 말자
[python 활용] websocket으로 json 송신, 수신 하기 본문
websocket json 다루기
JSON을 쓰는이유?
-프로젝트를 진행하는데, websocket으로 오직 텍스트만 전달할 수 있어서 불편한 경우가 생겼다. 예를들어 어떤 text를 보내면 text마다 server에서 처리하는 기능을 다르도록 처리하는 경우(?)이다. 실제로 작년 websocket으로 웹 마피아 게임을 만들 때는 무슨 앞에 별을 붙이고, 달러표시를 붙여서 서버에서 각 특수문자마다 case별로 처리를 했던 뻘짓(?)을 했던 것 같다... 그때 json을 알았으면 좋았을걸....
client.html
<script>
function sendMessage(){
//textarea객체를 id를 이용해 가져온다.
var message = document.getElementById("textMessage");
//json 데이터 생성. type은 'message'로 지정하고 text는 textarea의 value로 지정
var msg = {
type : "message",
text : message.value
};
//아래 설명 참고
webSocket.send(JSON.stringify(msg));
//textMessage객체의 값 초기화
message.value = "";
}
</script>
버튼을 클릭하면, 위의 함수가 실행되록하여 json형태의 데이터를 python 서버로 보내게 된다.
JSON.stringify() 함수
https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify
위의 사이트를 참고하면, 단순히 JSON데이터를 string으로 변환하는 역할을 하는 것을 알 수 있다.
그럼 서버에서는 어떻게 사용할 수 있을까?
server.py
#websocket client로부터 문자열로된 json 데이터를 받는다.
data = await websocket.recv();
//json.loads에서 마지막 s는 string을 의미한다. string으로 표현된 json데이터형식을 json format으로 변경하여 jd에 담는다.
jd = json.loads(data)
//타입이 어떻게 되는지 확인
print(type(data))
print(type(jd))
//결과 확인
print('{}'.format(data))
json_string = jd["text"]
print(json_string)
실행 결과 (client에서 hello라는 문자열 입력)
[kkj@localhost ws_json]$ python3.7 json_test.py
<class 'str'>
<class 'dict'>
{"type":"message","text":"hello"}
hello
짠 json 다루기 완료.
'Python' 카테고리의 다른 글
[python 활용]파이썬 모듈로 웹서버 구축하기 (0) | 2020.08.24 |
---|---|
[python 공부] 아스키코드->문자, 문자->아스키코드 (0) | 2020.08.10 |
[python 공부] set의 remove, discard 비교 (0) | 2020.08.10 |
[python 활용] subprocess 활용 (0) | 2020.03.24 |
[python 활용] subprocess (0) | 2020.03.24 |
Comments