IT관련(196)
-
WebSocket 기반 관제 프로그램
서비스 하는 지역 기준으로 가장 많은 택시수는 3000대이다. 관제 프로그램이 3000대를 한번에 표시할 수 있을거라고는 생각하지 않는다. 다만 몇대까지가 적합한지 테스트를 해보려고 코드를 작성해 보았다. 모든 택시가 실시간으로 움직이고 있다고 가정하고 서버는 초단위로 클라이언트에게 택시들의 좌표를 송출하며 클라이언트는 받은 차량의 정보를 전부 표시한다. from flask import Flask, render_template from flask_socketio import SocketIO import random import threading import json app = Flask(__name__) app.config['SECRET_KEY'] = 'vnkdjnfjknfl1232#' socketio ..
2024.04.23 -
WebSocket
관제 시스템을 web base로 옮겨보려고 방법을 찾다가 WebSocket을 찾아보게 되었다. WebSocket은 HTTP 포트(80, 433)으로 Server와 Client가 handshake후 양방향 통신이 가능하다고 한다. 일단 HTTP 포트를 이용하니깐 방화벽이 무용지물이 되겠구나 싶다. Handshake후 통신하는 데이터들에는 http header가 없어서 패킷의 사이즈도 줄어드는 장점이 있다. WebSocket은 규격이고 이걸 실제로 사용가능하게 한 라이브러리는 여러가지가 있는데, 대표적으로 Socket.IO가 있다. Socket.IO는 WebSocket을 기반으로 하는 JavaScript 개발자를 위한 대중적인 실시간 메시징 라이브러리이다. Emit Emit는 한글로 "방출하다"는 의미로써 ..
2024.04.23 -
카카오 메시지내 버튼 링크 오동작 처리
카카오톡에서 기본적으로 제공하는 메시지 템플릿을 이용하여 메시지를 보내고 있다. 메시지에는 버튼이 있고 링크가 연결되어 있다. 그런데 버튼의 링크 도메인을 바꿨더니 링크가 원하는 곳으로 가는게 아니라 회사 홈페이지로 이동을 하는 문제가 발생되었다. 링크가 문제인줄 알았으나, 확인결과 메시지 서비스에 사이트 도메인을 등록을 해야 정상적으로 동작한다는 것을 알게 되었다. 내 애플리케이션 > 앱 설정 > 플랫폼 > Web 사이트 도메인에서 변경된 도메인을 등록했더니 버튼의 링크가 정상 동작했다.
2024.03.25 -
안드로이드에서 AT 명령어 보내기
안드로이드 디바이스와 외부 모뎀을 USB(시리얼포트)로 연결한 후 상호간에 AT 명령어로 통신을 해야 하는 경우가 생겼다. PC에서는 뭐 여러가지 툴들도 있고 해서 어렵지 않지만 안드로이드에서 하는건 어떻게 해야 할지 몰라 난감했다. 우선 USB(시리얼) 드라이버가 사용하고자 하는 안드로이드에 로드 되어야 한다. 안드로이드가 드라이버를 지원하지 않으면 통신할 방법이 없다. 드라이버가 있다는 가정하게 command창을 띄워 adb shell로 안드로이드에 접속한다. 이후 USB(시리얼) 장치가 연결이 되었다면 ttyACM 혹은 ttyUSB 이름으로 된 장치가 보일 것이다. 그리고 ttyACM(ttyUSB)로 부터 응답을 받으면 출력하도록 cat 으로 연결을 한다. c:\> adb shell cat /dev..
2024.02.19 -
Python 채팅 프로그램
코드가 있으니 별다른 설명은 필요 없을것 같다. 다수의 클라이언트를 지원한다. 클라이언트에서 메시지를 보내면 서버가 받고 다시 클라이언트로 응답한다. 한번에 최대 1024 bytes 메시지 까지만 지원한다. 한글 메시지는 지원하지 않는다. 서버 import socket import threading IP = '127.0.0.1' # IP PORT = 5000 # PORT def start_server_echo(conn: socket, address: tuple) -> None: """ 클라이언트 메시지를 수신하고 메시지를 다시 클라이언트에 보낸다. @param conn: socket instance @param address: tuple(IP, pid) """ print("Connection from: ..
2024.02.01 -
리모트 디버깅 포트 사용중인 크롬 브라우저 여부 확인 방법
Selenium으로 자동화 하는 작업중 특정 remote debugging port로 실행된 브라우저 여부를 확인할 필요가 생겼다.하지만 실행된 브라우저를 찾을 방법이 딱히 떠오르지 않아서 매번 브라우저를 실행하고는 그 포트로 연결해서 작업후 창을 정리하도록 했다. 그랬더니 매번 불필요하게 빈 브라우저가 보였다가 사라지게 되었다. 방법을 고민하던 차에 netstat 명령어가 생각이 나서 문제를 해결할 수 있었다. netstat는 컴퓨터의 네트워크 및 포트에 대한 상태를 확인할 수 있는 명령어다. Remote debugging port로 9222를 지정했는데, 이 포트가 열려 있다면 크롬 브라우저가 실행되어 있는거고 없다면 브라우저를 실행시키면 된다. netstat로 9222 포트가 열려 있는지 확인하는 ..
2024.01.31