2012-02-01 31 views
0

我遇到了一个wcf客户端 - 服务器聊天应用程序的例子。为什么在一个wcf聊天应用程序中使用会话

chat app

[ServiceContract(CallbackContract=typeof(ISampleChatCallback), SessionMode=SessionMode.Required)] 
public interface ISampleChat 
{ 
    [OperationContract(IsInitiating=true, IsOneWay=true)] 
    void Connect(string name); 

    [OperationContract(IsOneWay = true)] 
    void SayToServer(string name, string msg); 

    [OperationContract(IsTerminating = true, IsOneWay = true)] 
    void Disconnect(string name); 
} 

我试图理解为什么我需要在聊天应用程序会话? (它在服务器上执行什么重要的作用)

回答

0

样本中使用了什么传输绑定?我对回调合同的经验是,某些绑定需要会话,有些则不需要。

例如netTcpBinding不需要会话,但wsDualHttpBinding会。

+0

它使用NetTcpBinding的 – 2012-02-01 20:05:07

+0

所以你不需要会话然后 – 2012-02-01 21:42:42

+0

我使用NetTcpBinding的默认值是SessionMode.Allowed 和InstanceContextMode.PerSession 所以用nettcpbindings工作时它随着季节的作品时,请阅读O'Reillys学习WCF 如果我们在哪里沟通(不同的绑定)一些其他方式,它会在perCall基础上沟通 。从上面的代码看来它是基于双工连接的 – 2012-02-01 22:51:51