Primeiramente eu gostaria de me desculpar pela minha "noobice". Eu não venho da área de web, por isso a minha falta de conhecimento e a minha necessidade urgente de obter ajuda :/
Como não conheço muito a linguagem, vou tentar detalhar bem meu problema colocando várias imagens em anexo, perdoem-me se eu estiver sendo exagerada rsrs
Vamos lá:
Eu criei uma aplicação bem simples (imagem APP - 1. Tela.png). Essa aplicação tem 4 campos em tela que quando publicados, salva a mensagem (payload) em tempo real em uma tabela (imagem SAP HANA database - Tabela para salvar dados.png) no SAP HANA database (banco de dados do SAP HANA Trial (imagem SAP HANA database.png)).
Para isso, usarei o protocolo MQTT. Sendo assim, criei uma conta no Cloud MQTT (imagem Cloud MQTT criado.png).
WEB - sucesso - 1. Connect - Estabelecendo conexão com o Cloud MQTT.png
WEB - sucesso - 2. Subscribed – Subscrevendo o Topic.png
WEB - sucesso - 3. Publish – Publicando a mensagem no Topic.png
WEB - sucesso - 4. Salvando na tabela do SAP HANA database.png
2) Ainda testando via web (http://www.hivemq.com/demos/websocket-client/) e passando todos os parâmetros correspondentes, e não consigo que o payload que eu estou gerando no código da minha aplicação salve os dados na minha tabela do banco sap hana.
APP - erro - 3. NÃO salvando na tabela do SAP HANA database.png
4) Meu código javascript
<script>//Using the HiveMQ public Broker, with a random client Id var client =newMessaging.Client("m12.cloudmqtt.com",39388,"bnuser"+ parseInt(Math.random()*100,10));//Gets called if the websocket/mqtt connection gets disconnected for any reason
client.onConnectionLost =function(responseObject){//Depending on your scenario you could implement a reconnect logic here
alert("connection lost: "+ responseObject.errorMessage);};//Gets called whenever you receive a message for your subscriptions
client.onMessageArrived =function(message){//Do something with the push message you received// $('#messages').append('<span>Topic: ' + message.destinationName + ' | ' + message.payloadString + '</span><br/>');
console.log("Message Arrived: "+ message.payloadString);
console.log("Topic: "+ message.destinationName);
console.log("QoS: "+ message.qos);
console.log("Retained: "+ message.retained);// Read Only, set if message might be a duplicate sent from broker
console.log("Duplicate: "+ message.duplicate);};//Connect Optionsvar options ={
userName:"tyanxvet",
password:"fmZYiSylGtjD",
useSSL:true,
timeout:3,//Gets Called if the connection has sucessfully been established
onSuccess:function(){
alert("Connected");},//Gets Called if the connection could not be established
onFailure:function(message){
alert("Connection failed: "+ message.errorMessage);}};var pl =newObject();
pl.mode ="sync";
pl.messageType ="57cd765743f3f9c473d5";var topic ="iot/data/iotmmss0016095593trial/v1/dc71fe1f-f710-4c06-a9f3-579d28a05e64";var mensagem =newObject();//Creates a new Messaging.Message Object and sends it to the HiveMQ MQTT Brokervar publish =function(payload, topic, qos){
mensagem.Humidity= document.getElementById("humidity").value;
mensagem.Temperature= document.getElementById("temperature").value;
mensagem.Brightness= document.getElementById("brightness").value;
mensagem.Timestamp= document.getElementById("timestamp").value;
pl.messages =newArray();
pl.messages[0]= mensagem;
console.log(JSON.stringify(pl));//Send your message (also possible to serialize it as JSON or protobuf or just use a string, no limitations)var message =newMessaging.Message(payload);
message.destinationName = topic;
message.qos =0;//message.retained = true;
client.send(message);}function refreshPage(){
window.location.reload();}</script>
Para mim parece que o problema é na montagem do payload da minha aplicação, mas pode ser que o problema seja outro e eu não fui capaz de identificar. Caso o problema seja realmente o payload, como eu devo ajustá-lo? Tentei algumas formas mas todas fotam sem sucesso ://
Pergunta
cardealt
Olá pessoal, eu espero que estejam bem!
Primeiramente eu gostaria de me desculpar pela minha "noobice". Eu não venho da área de web, por isso a minha falta de conhecimento e a minha necessidade urgente de obter ajuda :/
Como não conheço muito a linguagem, vou tentar detalhar bem meu problema colocando várias imagens em anexo, perdoem-me se eu estiver sendo exagerada rsrs
Vamos lá:
Eu criei uma aplicação bem simples (imagem APP - 1. Tela.png). Essa aplicação tem 4 campos em tela que quando publicados, salva a mensagem (payload) em tempo real em uma tabela (imagem SAP HANA database - Tabela para salvar dados.png) no SAP HANA database (banco de dados do SAP HANA Trial (imagem SAP HANA database.png)).
Para isso, usarei o protocolo MQTT. Sendo assim, criei uma conta no Cloud MQTT (imagem Cloud MQTT criado.png).
Obs: Ou seja, a grosso modo, a minha app vai mandar a mensagem para o cloud mqtt e o cloud mqqt vai direcionar para a minha tabela do SAP HANA database. Para isso usei o tutorial http://www.hivemq.com/blog/build-javascript-mqtt-web-application.
Porém, nem tudo são flores :/
1) Testando pela web (http://www.hivemq.com/demos/websocket-client/) e passando todos os parâmetros correspondentes, eu consigo que o payload seja salvo em minha tabela.
{mode":"sync","messageType":"57cd765743f3f9c473d5","messages":[{"Humidity":25.7, "Temperature": 21.5, "Brightness": 13.0, "timestamp":1413100000}]}
2) Ainda testando via web (http://www.hivemq.com/demos/websocket-client/) e passando todos os parâmetros correspondentes, e não consigo que o payload que eu estou gerando no código da minha aplicação salve os dados na minha tabela do banco sap hana.
{"mode":"sync","messageType":"57cd765743f3f9c473d5","messages":[{"Humidity":"99.1","Temperature":"99.2","Brightness":"99.3","Timestamp":"1999999999"}]}
3) Testando direto pela minha aplicação, o payload gerado não está salvando os dados na minha tabela do SAP HANA database.
{"mode":"sync","messageType":"57cd765743f3f9c473d5","messages":[{"Humidity":"99.1","Temperature":"99.2","Brightness":"99.3","Timestamp":"1999999999"}]}
4) Meu código javascript
5) Meu código HTML
Para mim parece que o problema é na montagem do payload da minha aplicação, mas pode ser que o problema seja outro e eu não fui capaz de identificar. Caso o problema seja realmente o payload, como eu devo ajustá-lo? Tentei algumas formas mas todas fotam sem sucesso ://
Alguém pode me ajudar???
Att,
Tata Cardeal
Link para o comentário
Compartilhar em outros sites
0 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.