Að halda spjallinu gangandi þegar síminn sefur
Agent Mythex getur unnið í nokkrar mínútur að einni beiðni, og þú fylgist líklega með úr síma — sem læsist, skiptir um forrit og breytir um net meðan hann vinnur. Tvær villur gerðu illt verra. Í annarri meðhöndlaði spjallið sérhvert „síðan er sýnileg aftur“-merki sem sönnun þess að tengingin væri dauð, og lenti í lykkju þar til það sat á „Tengist…“. Í hinni fékk sími sem svaf í gegnum fyrsta svar nýs spjalls aðeins fyrstu brot þess til baka, þar til handvirk endurhleðsla kom. Báðar eru lagaðar.
Hvernig spjallið fylgist með lotu í gangi
Meðan agentinn vinnur heldur spjallið opnu streymi frá þjónunum okkar: hvert skref — hugsun, verkfærakall, hluti af svarinu — kemur sem atburður. Ef streymið rofnar tengist spjallið aftur og þjónninn spilar aftur nýlega atburði úr biðminni sem geymir síðustu 120 sekúndurnar. Þegar lotunni lýkur biður spjallið einnig þjóninn um vistuðu söguna og sættir það sem það sýndi við það sem var vistað. Það síðasta grípur allt sem streymið missti af.
Til að greina lifandi tengingu frá dauðri þegar ekkert gerist sendir þjónninn lítinn „ping“ á 15 sekúndna fresti.
Villa 1: vöknun drap heilbrigt streymi
Vafrar segja síðu þegar hún verður sýnileg aftur: eftir flipaskipti, eftir að skjárinn opnast. Við notuðum það sem vísbendingu um að athuga tenginguna — og í raun til að rjúfa streymið og tengjast aftur, í þeirri trú að það hefði dáið meðan það var falið.
Á símum og innbyggðum vöfrum koma þessir atburðir mun oftar en streymi deyr — í hverju flipaskipti, í hverri opnun, og í sumum innbyggðum vöfrum á nokkurra sekúndna fresti. Hver þeirra rauf heilbrigt streymi. Spjallið tengdist aftur, spilaði aftur, var rofið aftur, og endaði á „Tengist…“. Svo sagði það að lotunni væri lokið þótt agentinn væri enn að vinna.
Lagfæringin: dæma streymið eftir því hvort það er að tala
Spjallið skráir nú hvenær streymi hvers verkefnis tók síðast við einhverju — atburðum og 15 sekúndna pingum jafnt. Merki um „sýnileg aftur“ rýfur aðeins streymi sem hefur verið þögult í 25 sekúndur: lengur en pingbilið auk hægs netstökks, svo lifandi streymi lendir aldrei þar. Prófin athuga að ping teljist sem merki um líf, og að streymi sem var að pinga rétt áðan sé ekki talið dautt.
Reglan sem við drógum af þessu: sýnileiki síðu segir eitthvað um síðuna, ekki um nettenginguna. Spurðu tenginguna.
Villa 2: hálft svar eftir að síminn vaknaði
Þessa gátum við endurskapað í hvert skipti í iOS-hermi:
- Byrjaðu nýtt spjall og sendu beiðni sem tekur smá tíma.
- Láttu símann sofa í gegnum smíðina.
- Komdu aftur þegar lotunni er lokið og tveggja mínútna endurspilunarbuffinn er runninn út.
Spjallið sýndi fyrstu blokkirnar af svarinu, merktar sem búnar — og var þannig þar til þú endurhlaðaðir síðunni.
Af hverju
Nýtt spjall hefur ekki þráð — geymda samtalið — fyrr en fyrstu skilaboðin búa hann til. Það gerist inni í sendifallinu, eftir að sending hafði þegar náð í sáttaskrefið, sem hélt enn að það væri enginn þráður. Svo í lok fyrstu lotu í nýju spjalli sá sáttaskrefið engan þráð og skilaði án þess að spyrja um neitt.
Venjulega tók enginn eftir því, því streymið hafði þegar skilað allri lotunni. En sími sem svaf í gegnum lotuna og kom til baka eftir að tveggja mínútna biðminnið var runnið út gat ekki sótt vantandi atburði úr streyminu — og sáttin sem átti að fylla í bilið hafði aldrei keyrt.
Lagfæringin
- Sending segir sáttinni hvaða þráð lotan tilheyrir, svo fyrsta lota í nýju spjalli sé sátt eins og allar aðrar. Ef þú hefur opnað annað spjall þegar svarið kemur til baka, er niðurstaðan látin falla frekar en að birtast á röngum stað.
- Misheppnuð sátt er reynd aftur. Sími sem vaknar á lélegu sambandi getur séð að lotunni er lokið en ekki náð í hana. Það er nú munað, og spjallið spyr aftur þegar flipinn birtist aftur eða netið kemur aftur.
- „Vann í“ er heiðarlegt. Hvert svar sýnir hversu lengi agentinn vann. Ef flipinn sá aldrei lokaskilaboð þjónsins úr lotunni fyllti hann það inn með eigin klukku — sem gekk frá Senda þar til síminn vaknaði, með tímanum fjarverandi meðtöldum. Sú tala er nú merkt sem áætlun og skipt út fyrir geymda lengd þegar sagan berst.
Það sem við lærðum
- Prófaðu á tækinu sem fólk notar, eins og það notar það. Báðar villurnar lágu í bilinu milli „streymis sem virkar“ og „síma í vasa“.
- Varaleið sem aldrei keyrir er ekki varaleið. Sáttaskrefið var til einmitt fyrir þetta tilvik og sleppti því án þess að segja neitt.
- Reyndu aftur batann líka. Augnablikið þegar sími vaknar er oft þegar tengingin er í verstu stöðu.
- Sýndu ekki ágiskun sem staðreynd. Lengd úr vitlausri klukku er verri en engin; merktu hana eða skiptu henni út.
Sama vinna snyrti líka nokkur atriði sem þú sérð meðan lota keyrir: skrefum í skel er lýst eftir skipuninni sem vinnur verkið í stað cd, skjámyndir í spjallinu halda efra vinstra horninu á síðunni og passa í dálkinn, og nýtt verkefni fær sjálfkrafa sitt mynduð nafn án endurhleðslu.
Ef þú ert að byggja þitt eigið app fyrir síma, fjalla leiðbeiningarnar okkar um að byggja farsímavænt vefapp og innfædd öpp á móti framsæknum vefforritum um grunnatriðin. Meira um spjallið sjálft er í spjallskjölunum.