/**
* 發(fā)送數(shù)據(jù)到網(wǎng)關(guān)
* @param string $address
* @param string $buffer
*/
protected static function sendToGateway($address, $gateway_data)
{
// 有$businessWorker說(shuō)明是workerman環(huán)境,使用$businessWorker發(fā)送數(shù)據(jù)
if(self::$businessWorker)
{
if(!isset(self::$businessWorker->gatewayConnections))
{
return false;
}
return self::$businessWorker->gatewayConnections->send($gateway_data);
}
// 非workerman環(huán)境,使用udp發(fā)送數(shù)據(jù)
$gateway_buffer = GatewayProtocol::encode($gateway_data);
$client = stream_socket_client("tcp://$address", $errno, $errmsg);
return strlen($gateway_buffer) == stream_socket_sendto($client, $gateway_buffer);
}
代碼注釋里寫(xiě)著使用UDP發(fā)送數(shù)據(jù) ,但從stream_socket_client的連接內(nèi)容來(lái)看是TCP的。
想了解的是這塊是寫(xiě)錯(cuò)了還是之前由UDP變?yōu)楝F(xiàn)在的TCP?
如果是后一種的話,用UDP有什么缺陷,要改為用TCP呢?UDP不應(yīng)該是開(kāi)銷(xiāo)更小嗎?謝謝