আমি স্থানীয় আইপি টানেল করার জন্য এনগ্রোক ব্যবহার করেছি (এটি সত্যিই তা নয় কারণ এটি গুগল কোলাবে রয়েছে) একটি পাবলিকের কাছে to
যাওয়া সান্ত্বনা ngrok আমি সব নির্মিত টানেল দেখতে পারেন। আমি লোকালহোস্টের জন্য কেবল একটি টানেল তৈরি করেছি: বন্দর তবে এখানে 2 টি, এইচটিটিপির জন্য এবং অন্যটি এইচটিটিপিএসের জন্য রয়েছে (এটি দুর্দান্ত নয়?)
আমি যদি আমার ওয়েব অ্যাপ্লিকেশনটির https ঠিকানায় যাই তবে কনসোলে আমি দেখতে পাচ্ছি
তবে আমি যদি কনসোলটিতে http ঠিকানাতে যাই
প্রশ্ন: আপনি কি এমন সার্ভিস কর্মীদের সাথে কাজ করতে পারেন যাদের টানেলের মাধ্যমে কোনও দূরবর্তী মেশিনে HTTP দরকার?
উত্তর: স্পষ্টতই হ্যাঁ!
এই নিবন্ধকরণের পিছনের কোডটি (এটি কোথায় ব্যর্থ হবে তা জানা গুরুত্বপূর্ণ):
IndexController.prototype._registerServiceWorker = function() {
console.log("1.Starting SW function.");
if (!navigator.serviceWorker) {
console.log("2.Browser is NOT compatible with SW or something is not working.");
return; }
console.log("2.Browser is compatible with SW.");
navigator.serviceWorker.register('/sw.js').then(function() {
console.log('3.Registration worked!');
}).catch(function() {
console.log('3.Registration failed!');
});
};
এবং এটিকে আরও জটিল করে তোলার জন্য, সার্ভিস ওয়ার্কার্স ব্যবহার করে আমার ওয়েব অ্যাপটি কোলাবের ( গুগল কুলাব ) ভিতরে চলছে । ওয়েব অ্যাপটি কোলাবের অভ্যন্তরে নোড.জেজে চলছে।
আপনি যদি লোকালহোস্ট থেকে কাজ করছেন তবে এটি আপনার পক্ষে সহজ হওয়া উচিত, কারণ লোকালহোস্টের সাথে সংযোগ করার সময় https- র প্রয়োজনীয়তা প্রয়োগ করা হয় না (তত্ত্ব অনুসারে)। [এ] এবং [খ]
ব্রাউজারটি কেবল আপনার অ্যাপ্লিকেশানটিতে দুর্দান্ত হবে কারণ এটি লোকালহোস্টে চলে।
দ্রষ্টব্য: উপরে আমার পরীক্ষা ..
- ফায়ারফক্স: নীচের সেটিংসগুলির সাথে এবং ছাড়াও কাজ করেছিল।
- ক্রোম: শ্বেত তালিকায় ইউআরএল যোগ না করে পুনরায় আরম্ভ না করে পেয়েছি
আমি পেয়েছি https ওয়েব অ্যাপে যাচ্ছি:
IndexController.js:49 Mixed Content: The page at 'https://0a4e1e0095b0.ngrok.io/' was loaded over HTTPS, but attempted to connect to the insecure WebSocket endpoint 'ws://0a4e1e0095b0.ngrok.io/updates?since=1602934673264&'. This request has been blocked; this endpoint must be available over WSS.
IndexController._openSocket @ IndexController.js:49
IndexController @ IndexController.js:10
(anonymous) @ index.js:16
loadScripts @ loadScripts.js:5
46.../utils/loadScripts @ index.js:15
s @ _prelude.js:1
e @ _prelude.js:1
(anonymous) @ _prelude.js:1
IndexController.js:49 Uncaught DOMException: Failed to construct 'WebSocket': An insecure WebSocket connection may not be initiated from a page loaded over HTTPS.
at IndexController._openSocket (https:
HTTP ওয়েব অ্যাপ্লিকেশন এ গিয়ে আমি পেয়েছি:
Navigated to http:
IndexController.js:17 1.Starting SW function.
IndexController.js:19 2.Browser is NOT compatible with SW or something is not working.
আপনি যদি লোকালহোস্টে নেই এবং https ব্যবহার করতে না পারেন তবে আপনার ব্রাউজারে আপনাকে এই সেটিংস পরিবর্তন করতে হতে পারে।
কিছু লোক ইতিমধ্যে এটি ব্যাখ্যা করেছে তবে এখানে এটি আবার যায়।
ক্রোম:
- ক্রোমে যান: // ফ্ল্যাগ / # অনিরাপদভাবে-ট্রিট-অনিরাপদ-উত্স-হিসাবে-সুরক্ষিত
- আপনি হোয়াইটলিস্ট করতে চান এমন url যুক্ত করুন।
- ক্রোম পুনরায় চালু করুন
নোট করুন যে এটি সমস্ত ক্রোম উইন্ডোজ পুনরায় চালু করবে । এটি আমার পক্ষে কোনও সমাধান নয় কারণ আমার টানেলগুলি যখনই তৈরি হয় ততবার নাম পরিবর্তন করে এবং আমি প্রতিবার একটি গুচ্ছ উইন্ডোজ পুনরায় চালু করতে পারি না।
ফায়ারফক্স / ওয়াটারফক্স
- বিকাশকারী সরঞ্জাম খুলুন
- ওপেন সেটিংস
- "HTTP- র মাধ্যমে পরিষেবা কর্মীদের সক্ষম করুন (যখন টুলবক্স খোলা থাকে)" চিহ্নিত করুন
ফায়ারফক্স / ওয়াটারফক্স
আপনার নীচের পরিবর্তনগুলি সম্ভবত করার দরকার নেই, তবে আমি করেছি (আমার ব্রাউজারটি কিছুটা পুরানো হতে পারে)। আরও তথ্য এখানে ।
সম্পর্কে: কনফিগার
আমি সক্ষম
dom.serviceWorkers.testing.enabled
dom.serviceWorkers.enabled
আমি একই সাইটের এই https://developer.mozilla.org/en-US/docs/Web/API/Service_Worker_API/Using_Service_Workers এবং সম্পর্কিত পৃষ্ঠাগুলি দেখার পরামর্শ দিচ্ছি ।
যদি কেউ এনগ্রোক সেটআপে আগ্রহী হন তবে এটি খুব সহজ (পাইথন সংস্করণ)।
# Install pyngrok python package on your Google Colab Session
!pip install pyngrok
# Set up your ngrok Authtoken (requires free registration)
!ngrok authtoken YOUR_TOKEN_HERE
# Invoke ngrok from Python and start tunneling/connecting
from pyngrok import ngrok
# Open a HTTP tunnel on the default port 80 if not specified
ngrok_tunnel = ngrok.connect('8888')
# You can print it, or go to the ngrok console on https:
print (ngrok_tunnel.public_url)