Return to Node
System Protocol: Native Bridge v2.5

OS NATIVE ARCHITECTURE

웹 브라우저의 제약을 벗어나 서버의 이벤트를 우분투 데스크탑 네이티브 통보 시스템으로 직접 사출하는 넷시티 전용 알림 아키텍처 명세서입니다.

Core Server

PHP Dispatcher

EVENT: New Post Detected

Ubuntu Desktop

OS Native Popup

ACTION: libnotify Trigger

Deep Dive: Implementation

01. OS 레벨 환경 구축 (Ubuntu)

웹 브라우저 없이 알림을 받기 위해 우분투에 libnotify-bin을 설치해야 합니다. 이는 터미널 명령어로 시스템 팝업을 생성하는 핵심 도구입니다.

# 필수 패키지 설치
$ sudo apt update
$ sudo apt install libnotify-bin mosquitto-clients

02. 백그라운드 리스너 (Python)

서버로부터 오는 메시지를 상시 대기(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()

03. 서버측 트리거 (PHP)

is_studio_write_process.php 파일 하단에 삽입하여, 글 작성이 완료됨과 동시에 관리자 PC로 즉각적인 푸시 신호를 보냅니다.

// 글 저장 성공 후 실행
$message = "새로운 노드가 등록되었습니다: " . $title;
exec("mosquitto_pub -h localhost -t 'is/alerts' -m '$message'");

04. 시스템 자동 실행 설정

우분투가 켜질 때마다 리스너가 자동으로 실행되도록 crontab에 등록하여 완전한 자동화를 구현합니다.

# 크론탭 편집기 진입
$ crontab -e

# 하단에 추가 (부팅 시 자동 실행)
@reboot python3 /path/to/netcity_listener.py &