RETURN
Native System Protocol

NATIVE TALK BRIDGE

브라우저를 통하지 않고 웹 서버가 우분투 데스크탑의 소켓 포트로 직접 명령을 송출하여 실시간 대화 레이어를 생성하는 네이티브 통합 아키텍처입니다.

Logic Flow

  • 01 서버 이벤트 발생 (PHP fsockopen)
  • 02 관리자 우분투 포트(9999) 신호 수신
  • 03 OS 레벨 Zenity 대화 레이어 소환
  • 04 관리자 답변 입력 시 서버 피드백 전송

Prerequisites

  • OS Ubuntu 20.04+ (Desktop Environment)
  • TOOLS zenity, netcat-openbsd
  • NETWORK TCP Port 9999 (Inbound Allowed)

STEP 01. 우분투 수신기 스크립트 구축

우분투 데스크탑 백그라운드에서 서버의 신호를 무한 루프로 감시하는 쉘 스크립트입니다.

# is_native_talk.sh 생성 및 작성
#!/bin/bash
while true; do
  # 서버로부터 신호 대기 (Port 9999)
  MESSAGE=$(nc -l -p 9999)
  
  if [ ! -z "$MESSAGE" ]; then
    # Zenity 대화창 사출
    REPLY=$(zenity --entry --title="Netcity Talk" --text="$MESSAGE" --width=400)
    
    # 답변이 있을 경우 서버(1.2.3.4)의 9998번 포트로 전송
    if [ ! -z "$REPLY" ]; then
      echo "REPLY:$REPLY" | nc -w 1 1.2.3.4 9998
    fi
  fi
done

STEP 02. PHP 서버 송신기 구현

관리자 대시보드에서 우분투 팝업을 트리거하는 로직입니다.

<?php
// is_send_signal.php
$admin_ip = 'ADMIN_PC_IP_ADDRESS';
$socket = @fsockopen($admin_ip, 9999, $errno, $errstr, 2);

if ($socket) {
    fwrite($socket, "시스템 알림: 새 인사이트 승인이 필요합니다.");
    fclose($socket);
    echo "Signal Sended.";
} ?>

STEP 03. 설치 및 보안 설정

필수 도구 설치

sudo apt install zenity netcat

방화벽 허용 (UFW)

sudo ufw allow from SERVER_IP to any port 9999

부팅 시 자동 실행 설정

우분투 메뉴의 [자동 시작 애플리케이션(Startup Applications)]을 열고 새로운 항목을 추가하십시오.
명령어 예시: bash /home/user/is_native_talk.sh