ବ୍ରାଉଜରରେ WebSocket ହାର୍ଟବିଟ୍ ପାଇଁ ଆପ୍ଲିକେସନ୍ ପ୍ରୋଟୋକଲ୍ ଆବଶ୍ୟକ
ଯେତେବେଳେ ବ୍ରାଉଜର JavaScript ସିଧାସଳଖ WebSocket Ping ଫ୍ରେମ୍ ପଠାଇ ପାରିବ ନାହିଁ, ସେତେବେଳେ ଏକ ସମ୍ମତ ଆପ୍ଲିକେସନ୍ ହାର୍ଟବିଟ୍ ଡିଜାଇନ୍ କରନ୍ତୁ।
ବ୍ରାଉଜରର WebSocket API ରେ send() ଅଛି। ଏହା JavaScript ପାଇଁ ପ୍ରୋଟୋକଲର Ping ଫ୍ରେମ୍ ପଠାଇବା ପାଇଁ ସାଧାରଣ ping() ପଦ୍ଧତି ପ୍ରକାଶ କରେ ନାହିଁ।
ଯଦି ଆପଣଙ୍କ ଆପ୍ଲିକେସନ୍ {"type":"heartbeat"} ପରି ଏକ ପାଠ୍ୟ ସନ୍ଦେଶ ପଠାଏ, ତେବେ ତାହା ଆପ୍ଲିକେସନ୍ ଡାଟା। ସର୍ଭରକୁ ସନ୍ଦେଶ ବୁଝିବାକୁ ହେବ ଏବଂ ଏକ ପ୍ରତିକ୍ରିୟା ନିର୍ଦ୍ଧାରଣ କରିବାକୁ ହେବ। ଯେଉଁ ସର୍ଭର ସେହି ଚୁକ୍ତି ଲାଗୁ କରେ ନାହିଁ, କେବଳ ପାଠ୍ୟରେ ping ଶବ୍ଦ ଅଛି ବୋଲି ପ୍ରୋଟୋକଲ Pong ସହିତ ଉତ୍ତର ଦେବାକୁ ବାଧ୍ୟ ନୁହେଁ।
ସ୍ୱୀକୃତିର ଅର୍ଥ କ’ଣ, ଏହା ଅପେକ୍ଷାରତ ହାର୍ଟବିଟ୍କୁ କିପରି ଚିହ୍ନଟ କରେ ଏବଂ ପୁରୁଣା ସ୍ୱୀକୃତି କେବେ ଅତି ବିଳମ୍ବ ହୁଏ ତାହା ନିର୍ଦ୍ଧାରଣ କରନ୍ତୁ। ଏହାକୁ ଏକ ବ୍ୟବସାୟିକ କାର୍ଯ୍ୟର ସ୍ୱୀକୃତିରୁ ଅଲଗା ରଖନ୍ତୁ।
JavaScript ଟାଇମରର ମଧ୍ୟ ସମୟସୂଚୀ ସୀମା ଥାଏ। ପୃଷ୍ଠଭୂମି ଟ୍ୟାବ୍ ଏବଂ ବ୍ୟସ୍ତ ମୁଖ୍ୟ ଥ୍ରେଡ୍ କଲବ୍ୟାକ୍କୁ ବିଳମ୍ବ କରିପାରେ। ଛାଡ଼ିଯାଇଥିବା ସଠିକ୍ ଟାଇମର ସୀମାକୁ ପ୍ରକ୍ସି ଆଗକୁ ପଠାଇବା ବନ୍ଦ କରିଦେଲା ବୋଲି ନିର୍ଣ୍ଣାୟକ ପ୍ରମାଣ ଭାବରେ ବ୍ୟାଖ୍ୟା କରନ୍ତୁ ନାହିଁ।
ବ୍ରାଉଜର ପ୍ରୋଟୋକଲର ନିୟନ୍ତ୍ରଣ ଫ୍ରେମ୍ଗୁଡ଼ିକୁ ଆଭ୍ୟନ୍ତରୀଣ ଭାବରେ ସମ୍ଭାଳି ପାରେ, କିନ୍ତୁ ତାହା ଆପ୍ଲିକେସନ୍ କୋଡ୍କୁ ପ୍ରତ୍ୟେକ Ping କିମ୍ବା Pong ର ବହନଯୋଗ୍ୟ ଦୃଶ୍ୟ ଦିଏ ନାହିଁ। ଯଦି ପୃଷ୍ଠାକୁ ନିଜର ଜୀବନ୍ତତା ନିର୍ଣ୍ଣୟ ଆବଶ୍ୟକ, ତେବେ ସ୍ପଷ୍ଟ ଆପ୍ଲିକେସନ୍ ଚୁକ୍ତି ଏବଂ ପୁନରୁଦ୍ଧାର ନୀତି ବ୍ୟବହାର କରନ୍ତୁ।
ଯେଉଁ ସକେଟର readyState OPEN, ତାହା ସ୍ଥାନୀୟ ଭାବରେ ଖୋଲା ବୋଲି ଗଣାଯାଏ; ଦୂର ଆପ୍ଲିକେସନ୍ ଆପଣଙ୍କ ଶେଷ ସନ୍ଦେଶ ପ୍ରକ୍ରିୟା କରିଛି ବୋଲି ଏହା ଏକ ସ୍ୱାଧୀନ ମାପ ନୁହେଁ। ଆପଣ ପ୍ରକୃତରେ ଯେଉଁ ପ୍ରଶ୍ନର ଉତ୍ତର ଦେବାକୁ ଆବଶ୍ୟକ କରନ୍ତି ତାହା ସହିତ ମେଳ ଖାଉଥିବା ପ୍ରମାଣ ବ୍ୟବହାର କରନ୍ତୁ।