Callback Contracts এবং Duplex Binding Configuration

Microsoft Technologies - উইন্ডোজ কমিউনিকেশন সিস্টেম (WCF) - Duplex Communication এবং Callback Contracts
206

Callback Contracts এবং Duplex Binding WCF (Windows Communication Foundation) এর শক্তিশালী বৈশিষ্ট্য যা ক্লায়েন্ট এবং সার্ভিসের মধ্যে দুই-দিকনির্ভর (two-way) যোগাযোগের সুযোগ প্রদান করে। সাধারণত WCF সার্ভিসে, ক্লায়েন্ট সার্ভিস থেকে ডেটা গ্রহণ করে। তবে Callback Contracts এবং Duplex Binding এর মাধ্যমে সার্ভিস ক্লায়েন্টকে ডেটা পাঠাতে পারে, ফলে দুই-দিকনির্ভর যোগাযোগ সম্ভব হয়।

Callback Contracts এবং Duplex Binding এর মৌলিক ধারণা

Callback Contracts

Callback Contract WCF সার্ভিসের মধ্যে এমন একটি কৌশল, যার মাধ্যমে সার্ভিস ক্লায়েন্টের কাছ থেকে আউটগোয়িং মেসেজ প্রাপ্তির জন্য অপেক্ষা করতে পারে। এটি একটি two-way communication প্রদান করে, যেখানে সার্ভিস একদিকে কাজ করতে থাকে এবং ক্লায়েন্টের জন্য রিপ্লাই সিস্টেমে সাড়া দেয়।

Callback Contract সাধারনত IDuplexContextChannel এবং OperationContract দিয়ে ব্যবহৃত হয়। সার্ভিস একটি callback interface মাধ্যমে ক্লায়েন্টের সঙ্গে যোগাযোগ করতে পারে।

Duplex Binding

Duplex Binding হল WCF একটি প্রকারের বাইন্ডিং (যেমন netTcpBinding বা wsHttpBinding) যা ক্লায়েন্ট এবং সার্ভিসের মধ্যে দ্বৈত যোগাযোগ সক্ষম করে। এটি Callback Contracts এর সাথে কাজ করে, যেখানে সার্ভিস ক্লায়েন্টকে রিয়েল-টাইমে আপডেট পাঠাতে পারে।

Duplex Binding এর জন্য বিশেষভাবে netTcpBinding বা wsDualHttpBinding ব্যবহৃত হয়। এর মাধ্যমে সার্ভিস ও ক্লায়েন্টের মধ্যে দ্বৈত (two-way) যোগাযোগ স্থাপন করা হয়।


ধাপ ১: Callback Contracts তৈরি করা

Callback Contracts সাধারণত একটি ইন্টারফেসের মাধ্যমে সংজ্ঞায়িত করা হয় যা সার্ভিস ক্লায়েন্টের জন্য একটি আউটগোয়িং কল (callback) সক্ষম করে।

১. Callback Contract তৈরি করা:

[ServiceContract(CallbackContract = typeof(ICallback))]
public interface IMyService
{
    [OperationContract]
    void SendMessage(string message);
}

এখানে, ICallback হচ্ছে সেই ইন্টারফেস যা ক্লায়েন্টের দ্বারা বাস্তবায়িত হবে এবং এর মাধ্যমে সার্ভিসে মেসেজ পাঠানো হবে।

২. Callback Interface তৈরি করা:

public interface ICallback
{
    [OperationContract]
    void ReceiveMessage(string message);
}

এখানে, ICallback ইন্টারফেসটি ক্লায়েন্টের কাছে মেসেজ গ্রহণ করার জন্য একটি অপারেশন প্রদান করবে।

৩. Service Implementation (Server-side):

public class MyService : IMyService
{
    public void SendMessage(string message)
    {
        ICallback callback = OperationContext.Current.GetCallbackChannel<ICallback>();
        callback.ReceiveMessage($"Message received: {message}");
    }
}

এখানে, SendMessage মেথডের মাধ্যমে সার্ভিস একটি মেসেজ পেয়েছে এবং callback চ্যানেল ব্যবহার করে ক্লায়েন্টে মেসেজ পাঠাচ্ছে।


ধাপ ২: Duplex Binding Configuration

Duplex Binding এর মাধ্যমে দুই-দিকনির্ভর যোগাযোগ নিশ্চিত করা হয়। WCF সার্ভিসে Duplex Binding সক্রিয় করতে, netTcpBinding বা wsDualHttpBinding ব্যবহার করা হয়।

১. Duplex Binding কনফিগারেশন (web.config):

<system.serviceModel>
  <bindings>
    <netTcpBinding>
      <binding name="duplexBinding">
        <security mode="None"/>
      </binding>
    </netTcpBinding>
  </bindings>

  <services>
    <service name="MyService">
      <endpoint address="net.tcp://localhost:8080/MyService" binding="netTcpBinding" bindingConfiguration="duplexBinding" contract="IMyService" />
    </service>
  </services>
</system.serviceModel>

এখানে, netTcpBinding একটি Duplex Binding যেটি দুই-দিকনির্ভর যোগাযোগের জন্য ব্যবহার করা হয়েছে।

২. Client Configuration (app.config):

<system.serviceModel>
  <client>
    <endpoint address="net.tcp://localhost:8080/MyService"
              binding="netTcpBinding"
              contract="IMyService"
              name="duplexClient" />
  </client>
</system.serviceModel>

এখানে, client endpoint কনফিগারেশন করা হয়েছে যাতে ক্লায়েন্ট netTcpBinding ব্যবহার করে সার্ভিসের সঙ্গে দ্বৈত (two-way) যোগাযোগ করতে পারে।


ধাপ ৩: Client Implementation

ক্লায়েন্টে Callback Contract বাস্তবায়ন করা হয়। ক্লায়েন্টের কাছে একটি ReceiveMessage মেথড থাকবে যা সার্ভিস থেকে মেসেজ গ্রহণ করবে।

১. Callback Implementation:

public class MyClient : ICallback
{
    public void ReceiveMessage(string message)
    {
        Console.WriteLine($"Received from server: {message}");
    }
}

২. Client-side Code:

class Program
{
    static void Main(string[] args)
    {
        MyClient callbackClient = new MyClient();
        DuplexChannelFactory<IMyService> factory = new DuplexChannelFactory<IMyService>(
            new InstanceContext(callbackClient),
            new NetTcpBinding(),
            new EndpointAddress("net.tcp://localhost:8080/MyService"));

        IMyService proxy = factory.CreateChannel();
        proxy.SendMessage("Hello from Client");

        Console.ReadLine();
    }
}

এখানে, DuplexChannelFactory একটি Duplex Channel তৈরি করে যা ক্লায়েন্টকে সার্ভিসের সাথে যোগাযোগ করার সুযোগ দেয়। সার্ভিসের SendMessage মেথড কল করার পর, সার্ভিস callbackClient.ReceiveMessage কল করবে।


সারাংশ

  • Callback Contracts WCF সার্ভিসে দুই-দিকনির্ভর যোগাযোগ সক্ষম করে, যেখানে সার্ভিস ক্লায়েন্টকে আউটগোয়িং কল করতে পারে।
  • Duplex Binding হল WCF সার্ভিসে দুই-দিকনির্ভর যোগাযোগের জন্য ব্যবহৃত বাইন্ডিং, যেখানে ক্লায়েন্ট এবং সার্ভিস একে অপরের সাথে যোগাযোগ করতে পারে।
  • WCF সার্ভিসে netTcpBinding বা wsDualHttpBinding ব্যবহার করে Duplex Binding কনফিগার করা হয়।
  • Callback Contract এবং Duplex Binding এর মাধ্যমে, WCF এ রিয়েল-টাইম আপডেট এবং কমপ্লেক্স অ্যাপ্লিকেশন তৈরি করা যায় যা ক্লায়েন্ট এবং সার্ভিসের মধ্যে ইন্টারঅ্যাকশন বাড়ায়।

এই প্রক্রিয়াগুলি আপনাকে WCF সার্ভিসে real-time communication এবং asynchronous notifications সক্ষম করতে সহায়ক।

Content added By
Promotion
NEW SATT AI এখন আপনাকে সাহায্য করতে পারে।

Are you sure to start over?

Loading...