我正在用C#和客户端API编写聊天服务器和客户端。
我想知道如何在新邮件到达时让API的用户知道。
我能做到
while(true){
messages = clientAPI.getMessages();
// do stuff
}
但是,它会收到几次相同的消息。
由于
答案 0 :(得分:1)
一种常见的方法是使用events在“事情发生”时通知用户。
例如,您可以拥有一个提供实际消息的自定义类型的MessageReceived
事件。
答案 1 :(得分:0)
如果没有关于客户端API的更多信息SignalR是否可行?它当然非常适合这类项目。
答案 2 :(得分:0)
如果您在ASP.NET下工作并拥有适当的基础架构,我强烈建议您查看SignalR库。
答案 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次。