vreemde gedrag van de variabelen in php

stemmen
0

Ik schrijf de chatbot voor Facebook met behulp van PHP. De vraag van facebook verwerkt door de PHP-bestand. En het is simlar aan die logica:

//got request from facebook
foreach ($data['entry'][0]['messaging'] as $message){
  if (checkAnswer($message['sender']['id'], $command)){
      $command = ;
      $command = empty($message['postback']) ? $message['message']['text'] : $message['postback']['payload'];
      $bot->send(new Message($message['sender']['id'], 'Thank you very much for participation!'));
  }
}
function checkAnswer($id, $text){
//some logic;
}

Als er twee berichten van verschillende personen in het ene moment worden verzonden Ik ben observeren volgende. De oproep van de checkAnswer functie is niet in de wachtrij (ik heb begrepen dat door het opnemen van het uitvoeringsproces met logging naar bestand). Zo kan worden opgeroepen op aanvraag 2 (verzoek van Facebook), terwijl 1 verzoek niet voltooid. En als gevolg van het (ik ben niet zeker voor 100%), de variabele $ id is niet altijd hetzelfde en ik heb de verkeerde algoritme uitvoering ... Het logbestand van start en stop is hier:

///////start////////////////////////
01:0:21 PM ID: 250 Text: 2
///////start////////////////////////
01:0:21 PM ID: 352 Text: 1
01:0:22 PM ID: 250 Text: 2
////////stop////////////////////////
01:0:22 PM ID: 352 Text: 1
////////stop////////////////////////

Ik werk met apache2 en PHP7 en het is mijn eerste applicatie met webservices. Kunt u enig idee te geven hoe is het mogelijk om het te repareren?

De vraag is gesteld op 31/01/2017 om 13:44
bron van user
In andere talen...                            


1 antwoorden

vreemde gedrag van de variabelen in php

stemmen
0

Ik schrijf de chatbot voor Facebook met behulp van PHP. De vraag van facebook verwerkt door de PHP-bestand. En het is simlar aan die logica:

//got request from facebook
foreach ($data['entry'][0]['messaging'] as $message){
  if (checkAnswer($message['sender']['id'], $command)){
      $command = "";
      $command = empty($message['postback']) ? $message['message']['text'] : $message['postback']['payload'];
      $bot->send(new Message($message['sender']['id'], 'Thank you very much for participation!'));
  }
}
function checkAnswer($id, $text){
//some logic;
}

Als er twee berichten van verschillende personen in het ene moment worden verzonden Ik ben observeren volgende. De oproep van de checkAnswer functie is niet in de wachtrij (ik heb begrepen dat door het opnemen van het uitvoeringsproces met logging naar bestand). Zo kan worden opgeroepen op aanvraag 2 (verzoek van Facebook), terwijl 1 verzoek niet voltooid. En als gevolg van het (ik ben niet zeker voor 100%), de variabele $ id is niet altijd hetzelfde en ik heb de verkeerde algoritme uitvoering ... Het logbestand van start en stop is hier:

///////start////////////////////////
01:0:21 PM ID: 250 Text: 2
///////start////////////////////////
01:0:21 PM ID: 352 Text: 1
01:0:22 PM ID: 250 Text: 2
////////stop////////////////////////
01:0:22 PM ID: 352 Text: 1
////////stop////////////////////////

Ik werk met apache2 en PHP7 en het is mijn eerste applicatie met webservices. Kunt u enig idee te geven hoe is het mogelijk om het te repareren?

antwoordde op 31/01/2017 om 13:44
bron van user

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more