4
在用戶的計算機上的桌面應用程序從調制解調器獲得的電話號碼,並把它發送到一個PHP腳本一次呼叫中收到。目前,我可以通過PHP在指定的端口上接收數據/數據包。然後我有一個連接到411數據庫的刮板,並返回指定電話號碼的地址。
問題
我檢索通過插座在PHP中的電話號碼後,我怎麼能自動更新爲新的電話號碼的411解析器頁?
代碼
socket_listener.php
set_time_limit(0);
$address = "127.0.0.1";
$port = 10629;
// create socket and bind with listener event
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
socket_bind($socket, $address, $port);
socket_listen($socket);
do {
$accept = socket_accept($socket);
$read = socket_read($accept, 1024) or die("Could not read input\n");
// parse phone number
$phone = substr($read, 19, 15);
$file = fopen("phone_numbers.txt", "a");
fwrite($file, $phone . "\r\n");
fclose($file);
} while (true);
phone_numbers.txt
(425) 555-1212
(123) 456-7890
當前的解決方案
我目前的解決方案很古怪。
modem -> desktop application -> socket_listener.php -> data.txt -> 411_scraper.php
- socket_listener.php偵聽的端口接收報文24/7,並追加新的電話號碼接收到一個文本文件
- 411_scraper.php每5檢查更新的文本文件秒。如果文件版本發生變化,那麼它會讀取最後的電話號碼
- 運行代碼來查詢411.com,並使用電話號碼
期望解
- socket_listener.php檢索數據在端口上偵聽包含電話號碼的傳入數據包
- 頁面自動從411檢索新數據進行更新
事情我一直在尋找
我看過的node.js,棘輪(www.socketme.com)和推杆(http://pusher.com/),但他們均高於我的理解程度。推杆和棘輪似乎很有前途,但我還沒有跳進他們呢。
也許你可以爲你的socket_listener.php創建一個回調? – Rainulf
具體有什麼問題?爲什麼不直接在'socket_listener.php'中更新數據庫呢? – Brad
@Brad - 問題是如何讓PHP一旦收到數據包(電話號碼),頁面自動查詢411數據庫並輸出數據,而不必像文本文件那樣經過中間人。我一直在做更多的研究,並採用了Ajax長輪詢方法。加上你的建議,使用數據庫 – Puiu