聊天客户端API:如何判断消息何时到达

时间:2014-02-19 16:55:03

标签: c# events

我正在用C#和客户端API编写聊天服务器和客户端。

我想知道如何在新邮件到达时让API的用户知道。

我能做到

while(true){
    messages = clientAPI.getMessages();
    // do stuff
}

但是,它会收到几次相同的消息。

由于

4 个答案:

答案 0 :(得分:1)

一种常见的方法是使用events在“事情发生”时通知用户。

例如,您可以拥有一个提供实际消息的自定义类型的MessageReceived事件。

答案 1 :(得分:0)

如果没有关于客户端API的更多信息SignalR是否可行?它当然非常适合这类项目。

答案 2 :(得分:0)

如果您在ASP.NET下工作并拥有适当的基础架构,我强烈建议您查看SignalR库。

SignalR on ASP.NET

答案 3 :(得分:0)

我答应发布一个简单的事件样本。所以你的服务器代码应该是这样的:

public class ClientApi
{

    public EventHandler SomethingHappened;

    public void StartWorkerMethod()
    {
        var i = 0;
        while (i < 10)
        {
            System.Threading.Thread.Sleep(2000);
            if (SomethingHappened != null)
                SomethingHappened(this, EventArgs.Empty);
            i++;
        }
    }
}

所以你的客户将使用如下:

var clientApi = new ClientApi();
clientApi.SomethingHappened += (s, e) => Console.WriteLine("Something happened on the server!");
clientApi.StartWorkerMethod();

如果您在控制台应用程序中实现此功能,您将看到结果将在事件之间等待10次。