TCP အခြေပြုအပြည့်အစုံရှိသောအပြည့်အဝကူညီသည့်ဆက်သွယ်ရေးပရိုတိုကောသည် TCP အခြေပြုအပြည့်အစုံကိုအခြေခံဆက်သွယ်ရေး protocol တစ်ခုဖြစ်သည်။ ရိုးရာ HTTP Polling နှင့်နှိုင်းယှဉ်ပါကလက်ငင်းဆက်သွယ်ရေးနှင့်အချိန်မှန်တွန်းအားကဲ့သို့သောဖြစ်ရပ်များတွင်ဝက်ဘ်ဆိုက်များသည်ပိုမိုထိရောက်သောနှင့်အနိမ့်အကန့်အသတ်ရှိသည်။
အမှန်တကယ်ဖြန့်ကျက်မှုတွင်ကျွန်ုပ်တို့သည် Nginx ကိုရှေ့တန်းတင်ခြင်း, လုံခြုံစိတ်ချရသော Access control control, လမ်းကြောင်းရှေ့ဆက်နှင့်အခြားလုပ်ဆောင်မှုများကိုကိုင်တွယ်ရန်ရှေ့တန်းနောက်ဆုံးပေါ် proxy server အဖြစ်မကြာခဏအသုံးပြုရန်လိုအပ်သည်။ websocket protocol ကိုထောကျပံ့ဖို့အတွက် Nginx ကိုပြုပြင်ပြောင်းလဲမှုအပိုဆောင်း connection ကို access ကို still ည့်သည်နှင့်စဉ်ဆက်မပြတ် backending သို့ပို့ဆောင်နိုင်အောင်လိုအပ်သည်။
ပထမ ဦး စွာ NGINX ကိုသင်၏ဆာဗာတွင်တပ်ဆင်ထားပါ။ ၎င်းကို Package Management Tool မှတဆင့် install လုပ်နိုင်သည်။
sudo apt ကို Install Nginx # Debian / Ubuntu System Subountu System Install Nginx # Centos စနစ်
တပ်ဆင်မှုပြီးဆုံးသွားသောအခါ, installation ကိုအောင်မြင်ရန်သေချာစေရန် Nginx -v ကိုကြည့်ရှုရန် Nginx -v ကို သုံးနိုင်သည်။
ထို့နောက် Nginx configuration file ကိုသင် /etc/nginx/nginx.cnf တွင် configuration file ကိုပြုပြင်ရန်လိုအပ်သည် ။
မြေပုံ $ http_upgrade $ connection_upgrade { ပုံမှန်အဆင့်မြှင့်တင်ခြင်း, '' အနီးကပ်; } အထက်ပြန် {{ ဆာဗာ 127.0.0.1:8080; }
ဤပြင်ဆင်မှု၏ရည်ရွယ်ချက်မှာ websocket connection ၏အဆင့်မြှင့်တင်မှုခေါင်းစဉ်အတွက်မြေပုံရေးဆွဲရန်နှင့် backend application ၏လိပ်စာကိုသတ်မှတ်ရန်ဖြစ်သည်။
တည်နေရာ / ဝက်ဘ်ဆိုက်များ { proxy_pass http: // backend; proxy_http_version 1.1; proxy_set_header $ http_upgrade; proxy_set_header ဆက်သွယ်မှု $ Connection_upgrade; }
ဤပြင်ဆင်မှုသည် forwuration forwards သည် backend သို့ / websoet လမ်းကြောင်းကိုကြည့်ရှုရန်နှင့်လိုအပ်သောခေါင်းစဉ်သတင်းအချက်အလက်များကိုချောချောမွေ့မွေ့ပြီးချောချောမွေ့မွေ့ပြုလုပ်ရန်လိုအပ်သော header အချက်အလက်များကိုသယ်ဆောင်ရန်တောင်းဆိုမှုများပြုလုပ်ရန်လိုအပ်သည်။
configuration ကိုပြည့်စုံပြီးနောက် Nginx Service ကိုပြန်လည်စတင်ရန်အောက်ပါ command ကို Execute လုပ်ပါ။
sudo 0 န်ကြီးဌာန Nginx ပြန်လည်စတင်
Configuration သည်မှန်ကန်ပါက Nginx သည် websock connection များကိုလွှဲပြောင်းပေးလိမ့်မည်။
websces သို့မဟုတ်အခြား client tolool မှတဆင့် websces ကိုအောင်မြင်စွာချိတ်ဆက်ထားခြင်းရှိမရှိသင်စစ်ဆေးနိုင်သည်။ ဤတွင်အခြေခံ JavaScript ဥပမာဖြစ်သည်။
var ws = waxock အသစ် ("WS: // သင့်ရဲ့ jusddain / websces"),); ws.Onopen = function () {) console.log ("websock on ချိတ်ဆက်"); }; ws.Onmessage = function ကို (ဖြစ်ရပ်) { console.log ("" + Event.data), }; ws.Onclose = function () {) console.log ("websces မှအဆက်ပြတ်"); };
အထက်ပါကုဒ်ကို HTML သို့ထည့်သွင်းပါ။ browser တွင်ဖွင့်ပြီးနောက် console သည် connection status ကိုပြသနိုင်မလားဆိုတာကိုကြည့်ပါ။
Nginx proxy websocketing ကို configure လုပ်ခြင်းအားဖြင့်ကျွန်ုပ်တို့သည်စွမ်းဆောင်ရည်မြင့်မားသော, Nginx ကိုယ်တိုင်က websockscy Logic ကိုမကိုင်တွယ်နိုင်ပါ။ နောက်ခံသည် websocket 0 န်ဆောင်မှုစွမ်းရည်ရှိရန်လိုအပ်သည်။ ခေတ်သစ်ဝက်ဘ်အပလီကေးရှင်းများတပ်ဖြန့်ချထားသည့်အခါ Nginx ၏ proxy functions နှင့် back-end websocket 0 န်ဆောင်မှုများကိုပေါင်းစပ်ထားသော Nginx ၏ proxy functions နှင့် back-end websocket 0 န်ဆောင်မှုများသည်အကောင်းဆုံးရွေးချယ်မှုဖြစ်သည်။