WebSocket হল একটি প্রোটোকল যা ওয়েব ব্রাউজার এবং সার্ভারের মধ্যে দুই-দিকনির্ভর, রিয়েলটাইম কমিউনিকেশন সক্ষম করে। এটি HTTP প্রোটোকলের উপরে কাজ করে, তবে একবার সংযোগ স্থাপন হলে এটি সক্রিয় থাকে এবং ডেটা দুই দিকে মুক্তভাবে আদান-প্রদান করা যায়। বুন (Boon) লাইব্রেরি WebSocket ব্যবহারের জন্য একটি সহজ এবং কার্যকরী উপায় প্রদান করে, যা ডেভেলপারদের রিয়েলটাইম অ্যাপ্লিকেশন তৈরি করতে সহায়তা করে।
বুন (Boon) লাইব্রেরি দিয়ে WebSocket ব্যবহারের মাধ্যমে ডেভেলপাররা দ্রুত এবং সহজে সার্ভার এবং ক্লায়েন্টের মধ্যে ডেটা আদান-প্রদান করতে পারেন, যেমন চ্যাট অ্যাপ্লিকেশন, লাইভ আপডেট, গেম, ইত্যাদি তৈরি করতে।
WebSocket সংযোগ স্থাপন
WebSocket সার্ভার এবং ক্লায়েন্টের মধ্যে একটি স্থায়ী সংযোগ স্থাপন করার জন্য প্রথমে WebSocket ইনস্ট্যান্স তৈরি করতে হয়। বুন লাইব্রেরি WebSocket সংযোগের জন্য সহজ API প্রদান করে।
১. WebSocket ক্লায়েন্ট তৈরি
একটি WebSocket ক্লায়েন্ট তৈরি করার জন্য নিচের কোডটি ব্যবহার করা যেতে পারে:
import boon
# WebSocket ক্লায়েন্ট তৈরি
ws = boon.websocket.WebSocketClient("ws://localhost:8080")
# সার্ভারের সাথে সংযোগ স্থাপন
ws.connect()
# সার্ভার থেকে ডেটা গ্রহণ করা
message = ws.receive()
# প্রাপ্ত বার্তা প্রিন্ট করা
print(f"Received: {message}")
# সার্ভারে বার্তা পাঠানো
ws.send("Hello, Server!")
# সংযোগ বন্ধ করা
ws.close()
এখানে, ws://localhost:8080 এ WebSocket সার্ভারের সাথে সংযোগ স্থাপন করা হয়েছে, এবং ক্লায়েন্ট থেকে সার্ভারে বার্তা পাঠানো হয়েছে। receive() ফাংশন সার্ভার থেকে প্রাপ্ত বার্তা গ্রহণ করতে ব্যবহৃত হয় এবং send() ফাংশন সার্ভারে বার্তা পাঠানোর জন্য ব্যবহার করা হয়।
WebSocket সার্ভার তৈরি
বুন (Boon) লাইব্রেরি ব্যবহার করে WebSocket সার্ভার তৈরি করা সম্ভব। একটি সিম্পল WebSocket সার্ভার তৈরি করার উদাহরণ নিচে দেওয়া হলো:
import boon
# WebSocket সার্ভার তৈরি
server = boon.websocket.WebSocketServer("ws://localhost:8080")
# ক্লায়েন্টের সংযোগ গ্রহণ করা
server.on_connect(lambda client: print("Client connected!"))
# সার্ভার থেকে ক্লায়েন্টে বার্তা পাঠানো
server.send_to_all("Welcome to the WebSocket server!")
# ক্লায়েন্ট থেকে বার্তা গ্রহণ
server.on_message(lambda client, message: print(f"Received from client: {message}"))
# সার্ভার চালু করা
server.run()
এখানে, on_connect() ফাংশন ক্লায়েন্ট সংযোগের সময় কল হয়, এবং on_message() ফাংশন ক্লায়েন্ট থেকে প্রাপ্ত বার্তা গ্রহণ করার জন্য ব্যবহার করা হয়। send_to_all() ফাংশন সার্ভার থেকে সব সংযুক্ত ক্লায়েন্টকে বার্তা পাঠায়। run() ফাংশন সার্ভার চালু করে।
WebSocket ইভেন্ট হ্যান্ডলিং
WebSocket ব্যবহার করার সময় বিভিন্ন ইভেন্ট হ্যান্ডলিং করা গুরুত্বপূর্ণ, যেমন সংযোগ স্থাপন, বার্তা প্রেরণ, এবং সংযোগ বিচ্ছিন্ন হওয়া। বুন (Boon) লাইব্রেরি এই ধরনের ইভেন্ট হ্যান্ডলিংকে সহজ করে তোলে।
উদাহরণ: WebSocket সংযোগ ইভেন্ট হ্যান্ডলিং
import boon
# WebSocket সার্ভার তৈরি
server = boon.websocket.WebSocketServer("ws://localhost:8080")
# সংযোগ স্থাপন ইভেন্ট হ্যান্ডলিং
server.on_connect(lambda client: print(f"Client {client} connected"))
# বার্তা প্রাপ্তি ইভেন্ট হ্যান্ডলিং
server.on_message(lambda client, message: print(f"Received from {client}: {message}"))
# সংযোগ বিচ্ছিন্ন হওয়া ইভেন্ট হ্যান্ডলিং
server.on_disconnect(lambda client: print(f"Client {client} disconnected"))
# সার্ভার চালু করা
server.run()
এখানে, on_connect(), on_message(), এবং on_disconnect() ফাংশনগুলো বিভিন্ন WebSocket ইভেন্টগুলোর জন্য হ্যান্ডলার হিসেবে কাজ করে।
সারাংশ
বুন (Boon) লাইব্রেরি WebSocket ব্যবহার করে রিয়েলটাইম ডেটা আদান-প্রদান সহজ করে তোলে। এটি WebSocket ক্লায়েন্ট এবং সার্ভার তৈরি করার জন্য একটি সোজা এবং কার্যকরী পদ্ধতি প্রদান করে। WebSocket সার্ভারের মাধ্যমে ডেভেলপাররা সহজে রিয়েলটাইম চ্যাট, লাইভ আপডেট বা গেমের মতো অ্যাপ্লিকেশন তৈরি করতে পারেন, এবং ক্লায়েন্ট ও সার্ভারের মধ্যে সক্রিয় সংযোগ বজায় রাখতে পারেন।