这是一个非常酷的测试 - 你的技术听起来像是一个很好的解决方案。
您是否在某处保存日期&次答案?难道是时差(0.04 &分别为0.02秒)是由于记录这些日期需要多长时间?也就是说,如果你保存到数据库中,例如,由于类似带索引的大表等,插入/更新可能需要一些时间才能完成。
编辑 我尝试以下方法使用WCF服务器&客户端在同一台机器上运行的模拟 - 以排除WCF本身可能是出于某种原因很慢。这似乎并非如此,我只能建议尝试,如果事件日志可能会导致延误找出的情况下,或者如果确有您的网络设置一些奇怪的滞后
我的服务器代码:
public interface IServiceWCF
{
[OperationContract]
DateTime TestConnectionSpeed(DateTime messageSentFromClientTime, out DateTime messageReceivedAtServerTime, out int millisecondsBetweenClientSentAndServerReceived);
}
public class ServiceWCF : IServiceWCF
{
public DateTime TestConnectionSpeed(DateTime messageSentFromClientTime, out DateTime messageReceivedAtServerTime, out int millisecondsBetweenClientSentAndServerReceived)
{
messageReceivedAtServerTime = DateTime.Now;
TimeSpan span = messageReceivedAtServerTime - messageSentFromClientTime;
millisecondsBetweenClientSentAndServerReceived = (int)span.TotalMilliseconds;
return DateTime.Now;
}
}
我的客户端代码
int millisecondsBetweenClientSentAndServerReceived;
DateTime clientSent = DateTime.Now;
DateTime serverReceived;
DateTime serverSent = wcfService.TestConnectionSpeed(clientSent, out serverReceived, out millisecondsBetweenClientSentAndServerReceived);
DateTime responseReceived = DateTime.Now;
TimeSpan span = responseReceived - serverSent;
int millisecondsBetweenServerSentAndClientReceived = (int)span.TotalMilliseconds;
Console.WriteLine("Message sent from client at {0} - server received {1} milliseconds later at {2} - server response sent at {3} - was received at client {4} milliseconds later at {5}",
clientSent,
millisecondsBetweenClientSentAndServerReceived,
serverReceived,
serverSent,
millisecondsBetweenServerSentAndClientReceived,
responseReceived);
而答案大多是非常快的 - 1毫秒 - 看样输出:
Message sent from client at 3/24/2017 3:56:22 PM - server received 1 milliseconds later at 3/24/2017 3:56:22 PM - server response sent at 3/24/2017 3:56:22 PM - was received at client 1 milliseconds later at 3/24/2017 3:56:22 PM
不意味着作为垃圾埠我会建议你的回应是一个后续评论,而不是一个问题。但是,我很欣赏这种回应,我很高兴在这里继续与你交谈。跟进你的问题。双方都将录制到两个单独的本地SQL服务器中。但是记录的时间来自c#代码,而不是SQL的时间戳记。是的,至少在服务器端,您所考虑的所有这些延迟都纳入了两个客户端时间戳。仅分析两个客户端时间戳就显示0.04个交易/秒。 – Steve
注意到后续评论 - 但很抱歉,我的评分太低,不能评论你的问题;) – Thys
大声笑。我不知道评级必须超过这么多评论。似乎颠倒。你应该可以评论但不能回答。答案意味着一些评论没有的专业知识。 – Steve