WCF 多个客户端

本文关键字:客户端 WCF | 更新日期: 2023-09-27 18:31:26

我目前正在开发一个即时通讯应用程序。一旦客户端连接到服务器并发送消息,它就可以正常工作。第二个客户端连接,两个客户端聊天,一切都很完美。当 2 个客户端同时发送消息时,问题就来了。然后两个客户端都冻结(在调试中我得到超时),但消息在聊天中向其他客户端显示正常。

这是服务器的行为:

[ServiceBehavior(ConcurrencyMode = ConcurrencyMode.Multiple, InstanceContextMode = InstanceContextMode.Single)]

应用配置行为:

<behavior name="Behave">
            <serviceThrottling maxConcurrentCalls="100"
 maxConcurrentSessions="100"
 maxConcurrentInstances="100" />
          </behavior>

在WCF方面,我是一个新手,我不确定我是否完全理解它。我尝试过改变周围的东西,但似乎没有任何帮助。任何形式的帮助将不胜感激。如果需要进一步的代码,我将根据要求提供。

WCF 多个客户端

我认为您应该调用后台线程,而不是同一线程。这是交易:

  1. 您应该定义private SynchronizationContext _SyncContext;

2.在构造函数中:

_SyncContext = SynchronizationContext .Current; 

3. 在客户端将此代码添加到方法事件处理程序中。

Thread thread = new Thread(()=>
{
    SendOrPostCallBack callback = new SendOrPostCallback(arg=>
    {

    ** your logic here need to be marshalled**
    }
    _SyncContext.Send(callback, null); 
}

告诉我它是否对你有用,兄弟。 快乐编码。