Boon একটি দ্রুত JSON পার্সিং লাইব্রেরি যা WebSocket অ্যাপ্লিকেশনগুলোতে ব্যবহৃত JSON ডেটা পাঠানোর জন্য খুবই কার্যকর। WebSocket একটি পূর্ণ-ডুplex প্রোটোকল, যা ক্লায়েন্ট এবং সার্ভারের মধ্যে একটি স্থির কানেকশন স্থাপন করে এবং সেই কানেকশনের মাধ্যমে বার্তা আদান-প্রদান করা সম্ভব করে। Boon ব্যবহার করে JSON ডেটা পাঠানো এবং গ্রহণ করা খুবই সহজ এবং কার্যকর।
এখানে আমরা দেখব কিভাবে WebSocket এর মাধ্যমে JSON ডেটা পাঠানো এবং গ্রহণ করা যায়, এবং Boon এর সাহায্যে সেই JSON ডেটার প্রোসেসিং কিভাবে করা যায়।
WebSocket সেটআপ এবং JSON ডেটা পাঠানো
WebSocket এর মাধ্যমে JSON ডেটা পাঠানোর জন্য, প্রথমে আমাদের Java WebSocket API ব্যবহার করে WebSocket কানেকশন তৈরি করতে হবে। Boon লাইব্রেরি JSON পার্সিংয়ের জন্য ব্যবহৃত হবে, যেটি ডেটা পাঠানোর পূর্বে JSON আউটপুট এবং রিসিভ করার সময় JSON ইনপুট প্রোসেস করতে সহায়তা করবে।
WebSocket সেটআপ উদাহরণ
এখানে একটি উদাহরণ দেওয়া হলো যেখানে Boon ব্যবহার করে JSON ডেটা WebSocket এর মাধ্যমে পাঠানো এবং রিসিভ করা হয়েছে:
১. Maven Dependencies
প্রথমে, আপনার pom.xml ফাইলে নিচের dependencies যোগ করুন:
<dependency>
<groupId>org.java-websocket</groupId>
<artifactId>Java-WebSocket</artifactId>
<version>1.5.2</version>
</dependency>
<dependency>
<groupId>io.boon</groupId>
<artifactId>boon</artifactId>
<version>1.0</version>
</dependency>
২. WebSocket ক্লায়েন্ট (JSON পাঠানো)
import org.java-websocket.client.WebSocketClient;
import org.java-websocket.handshake.ServerHandshake;
import io.boon.Boon;
import java.net.URI;
import java.net.URISyntaxException;
public class WebSocketClientExample {
public static void main(String[] args) throws URISyntaxException {
// WebSocket URL (এই URL আপনার WebSocket সার্ভারের URL হতে হবে)
URI serverURI = new URI("ws://localhost:8080");
WebSocketClient client = new WebSocketClient(serverURI) {
@Override
public void onOpen(ServerHandshake handshakedata) {
System.out.println("Connected to server");
// JSON ডেটা তৈরি করা
String jsonData = Boon.toJson(new Message("Hello", "John"));
// JSON ডেটা পাঠানো
send(jsonData);
}
@Override
public void onMessage(String message) {
// JSON ডেটা রিসিভ করা
System.out.println("Received message: " + message);
Message response = Boon.fromJson(message, Message.class);
System.out.println("Message from server: " + response.text);
}
@Override
public void onClose(int code, String reason, boolean remote) {
System.out.println("Disconnected from server");
}
@Override
public void onError(Exception ex) {
ex.printStackTrace();
}
};
// সার্ভারের সাথে কানেক্ট করা
client.connect();
}
// JSON ডেটা স্ট্রাকচার
static class Message {
String text;
String sender;
Message(String text, String sender) {
this.text = text;
this.sender = sender;
}
}
}
ব্যাখ্যা:
- WebSocketClient:
WebSocketClientহল WebSocket ক্লায়েন্ট ক্লাস, যা WebSocket সার্ভারের সাথে কানেকশন স্থাপন করে এবং মেসেজ পাঠানো এবং গ্রহণের জন্য ব্যবহৃত হয়। - onOpen(): যখন WebSocket সার্ভারের সাথে কানেকশন স্থাপন হয়, তখন
onOpen()মেথড কল হয়। এখানে, একটি JSON অবজেক্ট তৈরি করে সেটি পাঠানো হচ্ছে। - Boon.toJson():
Boon.toJson()পদ্ধতি ব্যবহার করে আমরা Java অবজেক্টকে JSON স্ট্রিং এ কনভার্ট করছি। - onMessage():
onMessage()মেথডটি সার্ভার থেকে মেসেজ রিসিভ করার জন্য ব্যবহৃত হয়। এখানে, রিসিভ করা JSON স্ট্রিংটিকে Java অবজেক্টে কনভার্ট করে তার তথ্য প্রিন্ট করা হচ্ছে। - Message ক্লাস: এটি একটি সাধারণ ক্লাস যা JSON ডেটার গঠন নির্ধারণ করে। এর মধ্যে
textএবংsenderফিল্ড রয়েছে, যা JSON ডেটাতে মিলে যাবে।
৩. WebSocket সার্ভার (JSON রিসিভ করা)
এখন একটি WebSocket সার্ভার উদাহরণ দেখানো হচ্ছে, যা JSON ডেটা গ্রহণ করবে এবং প্রক্রিয়া করে একটি রেসপন্স পাঠাবে।
import org.java-websocket.server.WebSocketServer;
import org.java-websocket.WebSocket;
import org.java-websocket.handshake.ClientHandshake;
import io.boon.Boon;
import java.net.InetSocketAddress;
public class WebSocketServerExample extends WebSocketServer {
public WebSocketServerExample(InetSocketAddress address) {
super(address);
}
@Override
public void onOpen(WebSocket conn, ClientHandshake handshake) {
System.out.println("New connection: " + conn.getRemoteSocketAddress());
}
@Override
public void onMessage(WebSocket conn, String message) {
System.out.println("Received message: " + message);
// JSON ডেটা রিসিভ
Message receivedMessage = Boon.fromJson(message, Message.class);
System.out.println("Message text: " + receivedMessage.text);
// JSON রেসপন্স তৈরি
Message response = new Message("Hello, " + receivedMessage.sender, "Server");
String jsonResponse = Boon.toJson(response);
// রেসপন্স পাঠানো
conn.send(jsonResponse);
}
@Override
public void onClose(WebSocket conn, int code, String reason, boolean remote) {
System.out.println("Closed connection: " + conn.getRemoteSocketAddress());
}
@Override
public void onError(WebSocket conn, Exception ex) {
ex.printStackTrace();
}
public static void main(String[] args) {
WebSocketServerExample server = new WebSocketServerExample(new InetSocketAddress(8080));
server.start();
System.out.println("Server started on port 8080");
}
// Message ক্লাস
static class Message {
String text;
String sender;
Message(String text, String sender) {
this.text = text;
this.sender = sender;
}
}
}
ব্যাখ্যা:
- WebSocketServer:
WebSocketServerক্লাস WebSocket সার্ভার তৈরি করতে ব্যবহৃত হয়। এই সার্ভার ক্লায়েন্ট থেকে মেসেজ গ্রহণ করবে এবং প্রক্রিয়া করে রেসপন্স পাঠাবে। - onMessage(): যখন সার্ভার একটি মেসেজ গ্রহণ করে, তখন
onMessage()মেথড কল হয়। এখানে, Boon লাইব্রেরির মাধ্যমে JSON স্ট্রিংটিMessageঅবজেক্টে কনভার্ট করা হচ্ছে। - Boon.fromJson(): এটি JSON স্ট্রিং থেকে Java অবজেক্টে কনভার্ট করার জন্য ব্যবহৃত হয়।
- Message ক্লাস: JSON ডেটার গঠন নির্ধারণ করার জন্য
Messageক্লাস তৈরি করা হয়েছে, যার মধ্যেtextএবংsenderফিল্ড রয়েছে।
সারাংশ
Boon লাইব্রেরি এবং WebSocket এর মাধ্যমে JSON ডেটা পাঠানো এবং গ্রহণ করা খুবই সহজ এবং কার্যকরী। WebSocket সার্ভার এবং ক্লায়েন্ট ব্যবহার করে আপনি JSON ডেটা আদান-প্রদান করতে পারেন, যেখানে Boon JSON পার্সিং এবং কনভার্সনের কাজ দ্রুত এবং কার্যকরভাবে করে। JSON ডেটা পাঠানোর সময় Boon.toJson() এবং রিসিভ করার সময় Boon.fromJson() ব্যবহার করা হয়।