전체 코드
from datetime import datetime
from websocket import create_connection
import json
ws = create_connection("ws://본인 IP:8001") <--ex) 192.111.111.111:8001
#print(ws.recv())
#print("Sending 'Hello, World'...")
# ws.send("Hello, World")
# print("Sent")
# print("Receiving...")
result = ws.recv()
print("Received '%s'" % result)
# d = {"name":"홍길동", "birth":"0525", "age": 30}
# json_data = json.dumps(d)
# ws.send(json_data)
# import websocket
# import _thread
# import time
# import rel
# def on_message(ws, message):
# print(message)
# def on_error(ws, error):
# print(error)
# def on_close(ws, close_status_code, close_msg):
# print("### closed ###")
# def on_open(ws):
# print("Opened connection")
# if __name__ == "__main__":
# websocket.enableTrace(True)
# ws = websocket.WebSocketApp("ws://192.168.110.104:8001",
# on_open=on_open,
# on_message=on_message,
# on_error=on_error,
# on_close=on_close)
# ws.run_forever(dispatcher=rel, reconnect=5) # Set dispatcher to automatic reconnection, 5 second reconnect delay if connection closed unexpectedly
# rel.signal(2, rel.abort) # Keyboard Interrupt
# rel.dispatch()
# check to see if the object has been counted or not
if (not trackable.counted) and (len_directions > min_directions):
if direction == 1 and centroid[1] < count_limit:
up_count += 1
trackable.counted = True
cursor.execute("UPDATE dbo.TB_PASSENGER_CP set UP_CP = " + str(up_count) + " where PASSENGER_ID_CP = "+str(row3[0]))
conn.commit()
cursor.execute("INSERT INTO dbo.TB_PASSENGER_LOG_CP (LOG_PASSTIME_CP, LOG_PASS_CONTENT_CP, LOG_PASS_COUNT_CP) values('"+datetime.utcnow().strftime('%Y-%m-%d %H:%M:%S.%f')[:-3]+"', 'UP', "+str(up_count)+")")
conn.commit()
d = [{"req":"up", "upCnt":str(up_count)}]
json_data = json.dumps(d)
ws.send(json_data)
elif direction == 0 and centroid[1] > count_limit:
down_count += 1
trackable.counted = True
cursor.execute("UPDATE dbo.TB_PASSENGER_CP set DOWN_CP = " + str(down_count) + " where PASSENGER_ID_CP = "+str(row3[0]))
conn.commit()
cursor.execute("INSERT INTO dbo.TB_PASSENGER_LOG_CP (LOG_PASSTIME_CP, LOG_PASS_CONTENT_CP, LOG_PASS_COUNT_CP) values('"+datetime.utcnow().strftime('%Y-%m-%d %H:%M:%S.%f')[:-3]+"', 'DOWN', "+str(down_count)+")")
conn.commit()
d = [{"req":"down", "downCnt":str(down_count)}]
json_data = json.dumps(d)
ws.send(json_data)
ws.close()
한 줄 해석
import json
👉파이썬 자료형을 json 문자열로 인코딩 하기 위해서는 먼저 json 모듈을 import로 가져와야합니다.
result = ws.recv()
👉웹소켓을 통해 받은 값을 result 변수에 넣어둠.
print("Received '%s'" % result)
👉%s 로 문자열을 출력합니다.
d = [{"req":"up", "upCnt":str(up_count)}]
json_data = json.dumps(d)
ws.send(json_data)
👉json문자열을 만들기 위해서는 json 모듈의 dumps 함수를 이용하면 된다.
예시로 아래 사진은 딕셔너리를 만들어서 dumps 함수를 이용해 json 문자열을 만들어 준것이다.
그렇다면 dumps(d)함수로 {req: "up", "upCnt": up_count 의 문자열 형식 값} <-- 이 나올것이고 이 json형식의 값을
json_data 변수에 담아둔다.그리고 웹소켓 send 함수로 전송합니다.
참고:
'WebSocket' 카테고리의 다른 글
웹 소켓(WebSocket) 코드분석(server.js 편) (1) | 2022.11.14 |
---|---|
웹 소켓 (코드 분석) (1) | 2022.11.13 |
[파이썬] 웹 소켓 사용하기!😊 (0) | 2022.11.12 |
웹 소켓 (Web Socket)🤝🤝 (1) | 2022.11.12 |