我需要使用MQTT将消息从我们的服务器传递到Android设备,我决定使用开源服务器mosquitto。我已经设置了mosquitto和tokudu服务的所有安装要求。
现在出现的问题是如何实现向设备发送消息的主要目标。我怎样才能做到这一点。
我提到了链接here以供参考。
发送简单的短信并接收我已在服务代码下方实施的回复。
$srv = new soap_server();
$srv->configureWSDL('send mqtt msg', 'urn:mqttwsdl');
$srv->register("send_mqtt_msg",
array('target' => 'xsd:string', 'message' => 'xsd:string'), // input parameters
array('return' => 'xsd:string'), // output parameters
'urn:mqttwsdl', // namespace
'urn:mqttwsdl#mqtt', // soapaction
'rpc', // style
'encoded', // use
'Sends message to server' // documentation );
函数send_mqtt_msg有以下内容
function send_mqtt_msg($target, $message)
{
include("SAM/php_sam.php");
$conn = new SAMConnection();
$result = $conn->connect(SAM_MQTT, array("SAM_HOST" => '127.0.0.1', "SAM_PORT" => 1883));
$msgCpu = new SAMMessage($message);
$sent = $conn->send('topic://EBackup/'.$target, $msgCpu);
$rc = $conn->disconnect();
if($result)
return "Message target {$target} | Message is {$message}";
}
这对我来说很好。 但是当涉及向设备发送消息时,我不知道如何实现这一点。请帮助。
我是新手,请为此指导。 提前谢谢。
答案 0 :(得分:0)
需要注意的事项:根据您的MQTT代理,订阅者在发送时未收到的消息可能不会保留很长时间(如果有的话)。