웹 브라우저의 제약을 벗어나 서버의 이벤트를 우분투 데스크탑 네이티브 통보 시스템으로 직접 사출하는 넷시티 전용 알림 아키텍처 명세서입니다.
PHP Dispatcher
OS Native Popup
웹 브라우저 없이 알림을 받기 위해 우분투에 libnotify-bin을 설치해야 합니다. 이는 터미널 명령어로 시스템 팝업을 생성하는 핵심 도구입니다.
# 필수 패키지 설치
$ sudo apt update
$ sudo apt install libnotify-bin mosquitto-clients
서버로부터 오는 메시지를 상시 대기(Listen)하고 있다가, 메시지가 도착하는 순간 OS 알림을 실행하는 파이썬 스크립트입니다.
# netcity_listener.py
import paho.mqtt.client as mqtt
import os
def on_message(client, userdata, msg):
os.system(f'notify-send "Insight Alert" "{msg.payload.decode()}" -i info')
client = mqtt.Client()
client.connect("your_server_ip")
client.subscribe("is/alerts")
client.on_message = on_message
client.loop_forever()
is_studio_write_process.php 파일 하단에 삽입하여, 글 작성이 완료됨과 동시에 관리자 PC로 즉각적인 푸시 신호를 보냅니다.
// 글 저장 성공 후 실행
$message = "새로운 노드가 등록되었습니다: " . $title;
exec("mosquitto_pub -h localhost -t 'is/alerts' -m '$message'");
우분투가 켜질 때마다 리스너가 자동으로 실행되도록 crontab에 등록하여 완전한 자동화를 구현합니다.
# 크론탭 편집기 진입
$ crontab -e
# 하단에 추가 (부팅 시 자동 실행)
@reboot python3 /path/to/netcity_listener.py &