背景
用户计算机上的桌面应用程序从调制解调器获取电话号码,并在接到电话后将其发送到 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、Ratchet (www.socketme.com) 和 Pusher ( http://pusher.com/ ),但它们都超出了我的理解水平。Pusher 和 Ratchet 似乎很有希望,但我还没有进入它们。