ਫ਼ੋਨ ਸੌਂਣ 'ਤੇ ਵੀ ਚੈਟ ਚਾਲੂ ਰੱਖਣਾ
Mythex ਦਾ ਏਜੰਟ ਇੱਕ ਬੇਨਤੀ 'ਤੇ ਕਈ ਮਿੰਟ ਕੰਮ ਕਰ ਸਕਦਾ ਹੈ, ਅਤੇ ਤੁਸੀਂ ਸ਼ਾਇਦ ਫ਼ੋਨ ਤੋਂ ਵੇਖ ਰਹੇ ਹੋਵੋ, ਜੋ ਕੰਮ ਦੌਰਾਨ ਲੌਕ ਹੁੰਦਾ ਹੈ, ਐਪਾਂ ਬਦਲਦਾ ਹੈ ਅਤੇ ਨੈੱਟਵਰਕ ਬਦਲਦਾ ਹੈ। ਦੋ ਬੱਗਾਂ ਨੇ ਇਹ ਗਲਤ ਕਰ ਦਿੱਤਾ। ਇੱਕ ਵਿੱਚ ਚੈਟ ਹਰ “ਪੇਜ ਦੁਬਾਰਾ ਦਿੱਖ ਰਿਹਾ ਹੈ” ਸੰਕੇਤ ਨੂੰ ਇਸ ਗੱਲ ਦਾ ਸਬੂਤ ਮੰਨਦੀ ਸੀ ਕਿ ਉਸਦਾ ਕਨੈਕਸ਼ਨ ਮਰ ਗਿਆ, ਅਤੇ “Connecting…” 'ਤੇ ਲੂਪ ਕਰਦੀ ਰਹਿੰਦੀ ਸੀ। ਦੂਜੇ ਵਿੱਚ, ਇੱਕ ਨਵੀਂ ਚੈਟ ਦੇ ਪਹਿਲੇ ਜਵਾਬ ਦੌਰਾਨ ਸੌਂਣ ਵਾਲਾ ਫ਼ੋਨ ਵਾਪਸ ਆ ਕੇ ਸਿਰਫ਼ ਉਸਦੇ ਪਹਿਲੇ ਕੁਝ ਟੁਕੜੇ ਦੇਖਦਾ ਸੀ, ਹੱਥੀਂ ਰਿਫਰੈਸ਼ ਹੋਣ ਤੱਕ। ਦੋਵੇਂ ਹੁਣ ਠੀਕ ਹਨ।
ਚੈਟ ਚੱਲ ਰਹੇ ਟਰਨ ਨੂੰ ਕਿਵੇਂ ਫੜਦੀ ਹੈ
ਏਜੰਟ ਦੇ ਕੰਮ ਦੌਰਾਨ, ਚੈਟ ਸਾਡੇ ਸਰਵਰਾਂ ਤੋਂ ਇੱਕ ਸਟਰੀਮ ਖੁੱਲ੍ਹਾ ਰੱਖਦੀ ਹੈ: ਹਰ ਕਦਮ, ਇੱਕ ਵਿਚਾਰ, ਇੱਕ ਟੂਲ ਕਾਲ, ਜਵਾਬ ਦਾ ਇੱਕ ਟੁਕੜਾ, ਇੱਕ ਈਵੈਂਟ ਵਜੋਂ ਆਉਂਦਾ ਹੈ। ਜੇ ਸਟਰੀਮ ਟੁੱਟਦੀ ਹੈ, ਤਾਂ ਚੈਟ ਮੁੜ ਕਨੈਕਟ ਹੁੰਦੀ ਹੈ ਅਤੇ ਸਰਵਰ ਹਾਲੀਆ ਈਵੈਂਟ ਇੱਕ ਬਫਰ ਤੋਂ ਦੁਬਾਰਾ ਚਲਾਉਂਦਾ ਹੈ, ਜੋ ਪਿਛਲੇ 120 ਸਕਿੰਟ ਰੱਖਦਾ ਹੈ। ਟਰਨ ਖਤਮ ਹੋਣ 'ਤੇ ਚੈਟ ਸਰਵਰ ਤੋਂ ਸੰਭਾਲਿਆ ਇਤਿਹਾਸ ਵੀ ਮੰਗਦੀ ਹੈ ਅਤੇ ਜੋ ਦਿਖਾਇਆ ਸੀ ਉਸਦਾ ਮੇਲ ਸਟੋਰ ਕੀਤੇ ਨਾਲ ਕਰਦੀ ਹੈ। ਇਹ ਆਖਰੀ ਕਦਮ ਉਹ ਕੁਝ ਫੜਦਾ ਹੈ ਜੋ ਸਟਰੀਮ ਤੋਂ ਛੁੱਟ ਗਿਆ।
ਜਦੋਂ ਕੁਝ ਨਹੀਂ ਹੋ ਰਿਹਾ ਹੁੰਦਾ, ਤਾਂ ਜੀਵਤ ਕਨੈਕਸ਼ਨ ਅਤੇ ਮਰੇ ਕਨੈਕਸ਼ਨ ਵਿੱਚ ਫਰਕ ਕਰਨ ਲਈ ਸਰਵਰ ਹਰ 15 ਸਕਿੰਟ ਵਿੱਚ ਇੱਕ ਛੋਟਾ “ping” ਭੇਜਦਾ ਹੈ।
ਬੱਗ 1: ਜਾਗਣ ਨਾਲ ਇੱਕ ਸਿਹਤਮੰਦ ਸਟਰੀਮ ਮਾਰੀ ਗਈ
ਬ੍ਰਾਊਜ਼ਰ ਪੇਜ ਨੂੰ ਦੱਸਦੇ ਹਨ ਜਦੋਂ ਉਹ ਮੁੜ ਦਿਖਣ ਲੱਗਦਾ ਹੈ: ਟੈਬ ਬਦਲਣ ਤੋਂ ਬਾਅਦ, ਸਕਰੀਨ ਅਨਲੌਕ ਹੋਣ ਤੋਂ ਬਾਅਦ। ਅਸੀਂ ਇਸਨੂੰ ਕਨੈਕਸ਼ਨ ਜਾਂਚਣ ਦਾ ਸੰਕੇਤ ਬਣਾਇਆ, ਅਤੇ ਅਸਲ ਵਿੱਚ ਸਟਰੀਮ ਨੂੰ ਰੱਦ ਕਰਕੇ ਮੁੜ ਕਨੈਕਟ ਕਰਨਾ, ਇਹ ਮੰਨ ਕੇ ਕਿ ਲੁਕੇ ਹੋਣ ਦੌਰਾਨ ਇਹ ਮਰ ਗਈ ਸੀ।
ਫ਼ੋਨਾਂ ਅਤੇ ਏਮਬੈੱਡ ਬ੍ਰਾਊਜ਼ਰਾਂ ਵਿੱਚ ਇਹ ਈਵੈਂਟ ਸਟਰੀਮਾਂ ਦੇ ਮਰਨ ਨਾਲੋਂ ਕਿਤੇ ਵੱਧ ਵਾਰ ਚੱਲਦੇ ਹਨ: ਹਰ ਟੈਬ ਬਦਲਣ, ਹਰ ਅਨਲੌਕ 'ਤੇ, ਅਤੇ ਕੁਝ ਏਮਬੈੱਡ ਬ੍ਰਾਊਜ਼ਰਾਂ ਵਿੱਚ ਹਰ ਕੁਝ ਸਕਿੰਟਾਂ ਵਿੱਚ। ਹਰ ਇੱਕ ਨੇ ਇੱਕ ਬਿਲਕੁਲ ਠੀਕ ਸਟਰੀਮ ਰੱਦ ਕੀਤੀ। ਚੈਟ ਮੁੜ ਕਨੈਕਟ ਹੁੰਦੀ, ਰੀਪਲੇ ਹੁੰਦਾ, ਫਿਰ ਰੱਦ ਹੋ ਜਾਂਦਾ, ਅਤੇ ਅੰਤ ਵਿੱਚ “Connecting…” 'ਤੇ ਅਟਕ ਜਾਂਦੀ। ਫਿਰ ਇਹ ਕਹਿੰਦੀ ਕਿ ਟਰਨ ਖਤਮ ਹੋ ਗਿਆ, ਜਦਕਿ ਏਜੰਟ ਅਜੇ ਵੀ ਕੰਮ ਕਰ ਰਿਹਾ ਸੀ।
ਹੱਲ: ਸਟਰੀਮ ਨੂੰ ਇਸ ਤੋਂ ਪਰਖੋ ਕਿ ਉਹ ਗੱਲ ਕਰ ਰਹੀ ਹੈ ਜਾਂ ਨਹੀਂ
ਚੈਟ ਹੁਣ ਹਰ ਪ੍ਰੋਜੈਕਟ ਦੀ ਸਟਰੀਮ ਨੇ ਆਖਰੀ ਵਾਰ ਕੁਝ ਵੀ ਕਦੋਂ ਲਿਆ, ਉਹ ਰਿਕਾਰਡ ਕਰਦੀ ਹੈ, ਈਵੈਂਟ ਅਤੇ 15-ਸਕਿੰਟ ਵਾਲੇ ping ਦੋਵੇਂ। “ਮੁੜ ਦਿਖਿਆ” ਸੰਕੇਤ ਸਿਰਫ਼ ਉਸ ਸਟਰੀਮ ਨੂੰ ਰੱਦ ਕਰਦਾ ਹੈ ਜੋ 25 ਸਕਿੰਟ ਤੋਂ ਚੁੱਪ ਹੈ: ping ਅੰਤਰਾਲ ਅਤੇ ਇੱਕ ਹੌਲੀ ਨੈੱਟਵਰਕ ਹੌਪ ਤੋਂ ਵੱਧ, ਤਾਂ ਜੋ ਜੀਵਤ ਸਟਰੀਮ ਕਦੇ ਯੋਗ ਨਾ ਹੋਵੇ। ਟੈਸਟ ਜਾਂਚਦੇ ਹਨ ਕਿ ping ਜੀਵਨ ਦਾ ਨਿਸ਼ਾਨ ਗਿਣਿਆ ਜਾਂਦਾ ਹੈ, ਅਤੇ ਜਿਹੜੀ ਸਟਰੀਮ ਹੁਣੇ ping ਕਰ ਚੁੱਕੀ ਹੈ ਉਸਨੂੰ ਮਰੀ ਨਹੀਂ ਮੰਨਿਆ ਜਾਂਦਾ।
ਇਸ ਤੋਂ ਜੋ ਸਿੱਖਿਆ: ਪੇਜ ਦੀ ਦਿੱਖ ਪੇਜ ਬਾਰੇ ਦੱਸਦੀ ਹੈ, ਨੈੱਟਵਰਕ ਕਨੈਕਸ਼ਨ ਬਾਰੇ ਨਹੀਂ। ਕਨੈਕਸ਼ਨ ਤੋਂ ਹੀ ਪੁੱਛੋ।
ਬੱਗ 2: ਫ਼ੋਨ ਜਾਗਣ ਤੋਂ ਬਾਅਦ ਅੱਧਾ ਜਵਾਬ
ਇਹ ਅਸੀਂ iOS ਸਿਮੂਲੇਟਰ ਵਿੱਚ ਹਰ ਵਾਰ ਦੁਹਰਾ ਸਕਦੇ ਸੀ:
- ਇੱਕ ਨਵੀਂ ਚੈਟ ਸ਼ੁਰੂ ਕਰੋ ਅਤੇ ਇੱਕ ਬੇਨਤੀ ਭੇਜੋ ਜਿਸ ਵਿੱਚ ਸਮਾਂ ਲੱਗੇ।
- ਬਿਲਡ ਦੌਰਾਨ ਫ਼ੋਨ ਨੂੰ ਸੌਂਣ ਦਿਓ।
- ਟਰਨ ਖਤਮ ਹੋਣ ਅਤੇ ਦੋ ਮਿੰਟ ਦਾ ਰੀਪਲੇ ਬਫਰ ਖਤਮ ਹੋਣ ਤੋਂ ਬਾਅਦ ਵਾਪਸ ਆਓ।
ਚੈਟ ਜਵਾਬ ਦੇ ਪਹਿਲੇ ਕੁਝ ਬਲੌਕ ਦਿਖਾਉਂਦੀ, ਜੋ ਮੁਕੰਮਲ ਵਜੋਂ ਚਿੰਨ੍ਹਿਤ ਸਨ, ਅਤੇ ਪੇਜ ਰਿਫਰੈਸ਼ ਹੋਣ ਤੱਕ ਇਸੇ ਤਰ੍ਹਾਂ ਰਹਿੰਦੀ।
ਕਿਉਂ
ਇੱਕ ਨਵੀਂ ਚੈਟ ਕੋਲ ਥ੍ਰੈੱਡ, ਭਾਵ ਸੰਭਾਲੀ ਗੱਲਬਾਤ, ਉਦੋਂ ਤੱਕ ਨਹੀਂ ਹੁੰਦਾ ਜਦੋਂ ਤੱਕ ਪਹਿਲਾ ਸੁਨੇਹਾ ਇਸਨੂੰ ਨਾ ਬਣਾਏ। ਇਹ ਭੇਜਣ ਵਾਲੇ ਫੰਕਸ਼ਨ ਦੇ ਅੰਦਰ ਹੁੰਦਾ ਹੈ, ਬਾਅਦ ਵਿੱਚ ਜਦੋਂ ਭੇਜਣ ਨੇ ਮੇਲ ਕਰਨ ਵਾਲਾ ਕਦਮ ਪਹਿਲਾਂ ਹੀ ਫੜ ਲਿਆ ਸੀ, ਜੋ ਅਜੇ ਵੀ ਸੋਚਦਾ ਸੀ ਕਿ ਕੋਈ ਥ੍ਰੈੱਡ ਨਹੀਂ। ਇਸ ਲਈ ਇੱਕ ਨਵੀਂ ਚੈਟ ਦੇ ਪਹਿਲੇ ਟਰਨ ਦੇ ਅੰਤ 'ਤੇ, ਮੇਲ ਨੇ ਕੋਈ ਥ੍ਰੈੱਡ ਨਹੀਂ ਵੇਖਿਆ ਅਤੇ ਬਿਨਾਂ ਕੁਝ ਮੰਗੇ ਚੁੱਪਚਾਪ ਮੁੜ ਗਿਆ।
ਆਮ ਤੌਰ 'ਤੇ ਕਿਸੇ ਨੇ ਧਿਆਨ ਨਹੀਂ ਦਿੱਤਾ, ਕਿਉਂਕਿ ਸਟਰੀਮ ਨੇ ਪੂਰਾ ਟਰਨ ਵੈਸੇ ਵੀ ਦੇ ਦਿੱਤਾ ਹੁੰਦਾ ਸੀ। ਪਰ ਜਿਹੜਾ ਫ਼ੋਨ ਟਰਨ ਦੌਰਾਨ ਸੁੱਤਾ ਰਿਹਾ ਅਤੇ 120-ਸਕਿੰਟ ਰੀਪਲੇ ਬਫਰ ਖਤਮ ਹੋਣ ਤੋਂ ਬਾਅਦ ਵਾਪਸ ਆਇਆ, ਉਹ ਸਟਰੀਮ ਤੋਂ ਗੁੰਮ ਈਵੈਂਟ ਨਹੀਂ ਲੈ ਸਕਦਾ ਸੀ, ਅਤੇ ਜਿਹੜਾ ਮੇਲ ਪਾੜਾ ਭਰਨਾ ਸੀ ਉਹ ਕਦੇ ਚੱਲਿਆ ਹੀ ਨਹੀਂ ਸੀ।
ਹੱਲ
- ਭੇਜਣਾ ਮੇਲ ਨੂੰ ਦੱਸਦਾ ਹੈ ਕਿ ਟਰਨ ਕਿਸ ਥ੍ਰੈੱਡ ਦਾ ਹੈ, ਤਾਂ ਜੋ ਨਵੀਂ ਚੈਟ ਦਾ ਪਹਿਲਾ ਟਰਨ ਹੋਰ ਟਰਨਾਂ ਵਾਂਗ ਮੇਲ ਹੋਵੇ। ਜੇ ਜਵਾਬ ਵਾਪਸ ਆਉਣ ਤੱਕ ਤੁਸੀਂ ਕੋਈ ਹੋਰ ਚੈਟ ਖੋਲ੍ਹ ਲਈ ਹੈ, ਤਾਂ ਨਤੀਜਾ ਗਲਤ ਥਾਂ ਦਿਖਾਉਣ ਦੀ ਥਾਂ ਛੱਡ ਦਿੱਤਾ ਜਾਂਦਾ ਹੈ।
- ਅਸਫਲ ਮੇਲ ਮੁੜ ਕੋਸ਼ਿਸ਼ ਹੁੰਦਾ ਹੈ। ਖਰਾਬ ਕਨੈਕਸ਼ਨ 'ਤੇ ਜਾਗਦਾ ਫ਼ੋਨ ਲੱਭ ਸਕਦਾ ਹੈ ਕਿ ਟਰਨ ਖਤਮ ਹੋ ਗਿਆ ਅਤੇ ਫਿਰ ਉਸਨੂੰ ਲਿਆਉਣ ਵਿੱਚ ਅਸਫਲ ਰਿਹਾ। ਇਹ ਹੁਣ ਯਾਦ ਰੱਖਿਆ ਜਾਂਦਾ ਹੈ, ਅਤੇ ਟੈਬ ਮੁੜ ਦਿਖਣ ਜਾਂ ਨੈੱਟਵਰਕ ਵਾਪਸ ਆਉਣ 'ਤੇ ਚੈਟ ਮੁੜ ਪੁੱਛਦੀ ਹੈ।
- “Worked for” ਈਮਾਨਦਾਰ ਹੈ। ਹਰ ਜਵਾਬ ਦਿਖਾਉਂਦਾ ਹੈ ਕਿ ਏਜੰਟ ਕਿੰਨਾ ਸਮਾਂ ਕੰਮ ਕਰਦਾ ਰਿਹਾ। ਜੇ ਟੈਬ ਨੇ ਸਰਵਰ ਦਾ ਟਰਨ-ਅੰਤ ਸੁਨੇਹਾ ਕਦੇ ਨਹੀਂ ਵੇਖਿਆ, ਤਾਂ ਇਹ ਆਪਣੀ ਘੜੀ ਤੋਂ ਉਹ ਹਿੱਸਾ ਭਰ ਲੈਂਦੀ ਸੀ, ਜੋ Send ਤੋਂ ਲੈ ਕੇ ਫ਼ੋਨ ਜਾਗਣ ਤੱਕ ਚੱਲਦੀ ਸੀ, ਦੂਰ ਬਿਤਾਇਆ ਸਮਾਂ ਵੀ ਸ਼ਾਮਲ। ਹੁਣ ਇਹ ਅੰਕੜਾ ਅੰਦਾਜ਼ਾ ਵਜੋਂ ਚਿੰਨ੍ਹਿਤ ਹੈ, ਅਤੇ ਇਤਿਹਾਸ ਆਉਣ 'ਤੇ ਸੰਭਾਲੇ ਹੋਏ ਸਮੇਂ ਨਾਲ ਬਦਲ ਜਾਂਦਾ ਹੈ।
ਅਸੀਂ ਇਸ ਤੋਂ ਕੀ ਸਿੱਖਿਆ
- ਉਸ ਡਿਵਾਈਸ 'ਤੇ ਟੈਸਟ ਕਰੋ ਜੋ ਲੋਕ ਅਸਲ ਵਿੱਚ ਵਰਤਦੇ ਹਨ, ਉਸੇ ਤਰ੍ਹਾਂ ਜਿਵੇਂ ਉਹ ਵਰਤਦੇ ਹਨ। ਦੋਵੇਂ ਬੱਗ “ਇੱਕ ਕੰਮ ਕਰਦੀ ਸਟਰੀਮ” ਅਤੇ “ਜੇਬ ਵਿੱਚ ਪਿਆ ਫ਼ੋਨ” ਦੇ ਵਿਚਕਾਰਲੇ ਪਾੜੇ ਵਿੱਚ ਰਹਿੰਦੇ ਸਨ।
- ਜੋ ਬੈਕਅੱਪ ਕਦੇ ਨਹੀਂ ਚੱਲਦਾ ਉਹ ਬੈਕਅੱਪ ਨਹੀਂ ਹੁੰਦਾ। ਮੇਲ ਕਦਮ ਇਹੀ ਸਥਿਤੀ ਫੜਨ ਲਈ ਸੀ, ਅਤੇ ਚੁੱਪਚਾਪ ਛੱਡਿਆ ਜਾਂਦਾ ਸੀ।
- ਰਿਕਵਰੀ ਨੂੰ ਵੀ ਮੁੜ ਕੋਸ਼ਿਸ਼ ਕਰੋ। ਜਿਸ ਪਲ ਫ਼ੋਨ ਜਾਗਦਾ ਹੈ, ਅਕਸਰ ਉਸਦਾ ਕਨੈਕਸ਼ਨ ਸਭ ਤੋਂ ਕਮਜ਼ੋਰ ਹੁੰਦਾ ਹੈ।
- ਅੰਦਾਜ਼ੇ ਨੂੰ ਤੱਥ ਵਜੋਂ ਨਾ ਦਿਖਾਓ। ਗਲਤ ਘੜੀ ਤੋਂ ਲਿਆ ਸਮਾਂ ਕੋਈ ਨਾ ਹੋਣ ਨਾਲੋਂ ਵੀ ਮਾੜਾ ਹੈ; ਉਸਨੂੰ ਲੇਬਲ ਕਰੋ ਜਾਂ ਬਦਲੋ।
ਇਸੇ ਕੰਮ ਨੇ ਕੁਝ ਹੋਰ ਚੀਜ਼ਾਂ ਵੀ ਸੁਧਾਰੀਆਂ ਜੋ ਟਰਨ ਚੱਲਦੇ ਸਮੇਂ ਦਿਖਣਗੀਆਂ: ਸ਼ੈੱਲ ਕਦਮ ਹੁਣ cd ਦੀ ਥਾਂ ਉਸ ਕਮਾਂਡ ਨਾਲ ਲੇਬਲ ਹੁੰਦੇ ਹਨ ਜੋ ਅਸਲ ਕੰਮ ਕਰਦੀ ਹੈ; ਚੈਟ ਦੇ ਸਕਰੀਨਸ਼ਾਟ ਪੇਜ ਦਾ ਉੱਪਰਲਾ-ਖੱਬਾ ਹਿੱਸਾ ਰੱਖਦੇ ਹਨ ਅਤੇ ਕਾਲਮ ਵਿੱਚ ਫਿੱਟ ਹੁੰਦੇ ਹਨ; ਅਤੇ ਨਵਾਂ ਪ੍ਰੋਜੈਕਟ ਬਿਨਾਂ ਰਿਫਰੈਸ਼ ਦੇ ਆਪਣਾ ਬਣਾਇਆ ਨਾਮ ਲੈ ਲੈਂਦਾ ਹੈ।
ਜੇ ਤੁਸੀਂ ਫ਼ੋਨਾਂ ਲਈ ਆਪਣੀ ਐਪ ਬਣਾ ਰਹੇ ਹੋ, ਤਾਂ ਮੋਬਾਈਲ-ਫ੍ਰੈਂਡਲੀ ਵੈੱਬ ਐਪ ਬਣਾਉਣਾ ਅਤੇ ਨੇਟਿਵ ਬਨਾਮ ਪ੍ਰੋਗਰੈਸਿਵ ਵੈੱਬ ਐਪ ਗਾਈਡਾਂ ਬੁਨਿਆਦੀ ਗੱਲਾਂ ਕਵਰ ਕਰਦੀਆਂ ਹਨ। ਚੈਟ ਬਾਰੇ ਹੋਰ ਚੈਟ ਦਸਤਾਵੇਜ਼ਾਂ ਵਿੱਚ ਹੈ।