因應需要而開啟一個port去監聽,並且獲取一台會定時傳送資料至指定網域的機器資訊,必要時也需要傳送指令給機器。
透過php開啟了一個監聽port,並且將讀到的資訊寫入資料庫中
-讀取則直接讀取資料庫
-寫入則是透果php讀取資料庫中特定資訊判定是否需要傳送指令
1.多台機器時,需要使用多個port,通常如何控制與讀取較為合理?
2.是否有其他方法能夠讓監聽中的port判斷是否傳送指令給遠端機器?
多台機器時,需要使用多個port
應該是程式帶上 IP 標記
使用同一個 Port 就可以了
1.多台機器時,需要使用多個port,通常如何控制與讀取較為合理?
我使用多部較舊 PC 個別接收,因量大、這樣比較不會出問題,反正那些 PC 也沒用途,
東拼西湊出規格比較高的拿來用,還可以去跟上面邀功,降低公司採購成本、廢物利用
2.是否有其他方法能夠讓監聽中的port判斷是否傳送指令給遠端機器?
用途 ??? 既已傳送到資料庫了,有多部資料庫狀況下,後端使用 PHP 整合所有資料庫資料就好了
謝謝
目前狀況大概如下圖
遇到的問題是,傳送指令開關燈會受限於PHP中socket寫法,只有當燈具傳送訊號時,才會去讀資料庫中的開關燈狀態,並發送指令給燈具。
do {
if (($msgsock = socket_accept($socket)) === false) {
echo "Error: socket_accept: " . socket_strerror(socket_last_error($socket)) . "\n";
break;
}
/* Send Welcome message. */
$msg = "\nPHP Websocket \n";
// Listen to user input
do {
if (false === ($buf = socket_read($msgsock, 8192, PHP_NORMAL_READ))) {
echo "socket read error: ".socket_strerror(socket_last_error($msgsock)) . "\n";
break 2;
}
if (!$buf = trim($buf)) {
continue;
}
///////////////////////////////
////讀取資料庫資料與寫入資料庫///
////////////////////////////////
echo "$buf\n";
} while (true);
socket_close($msgsock);
} while (true);