Timer 信号机开销

Timer 信号机开销,timer,signalr,Timer,Signalr,我有一个客户端,它通过定期(每4秒)发送它的新位置来更新它在服务器上的位置。我还有一个客户端,它可以跟踪以前的移动设备,通过定期向服务器发送花粉(每5秒一次)并获取最新位置 该通信是通过信号机(用于发送最新位置)还是通过定时器进行?我这样说是因为信号器有一些开销,这会产生更大的请求大小,这可能非常昂贵 谢谢,, RYanHTTP通信胜利 现在,根据我对您描述的理解,您正在执行多个更新帖子,然后侦听器正在使用轮询GET请求。它们有单独的HTTP请求头的开销,如果不使用keep-alive或超过ke

我有一个客户端,它通过定期(每4秒)发送它的新位置来更新它在服务器上的位置。我还有一个客户端,它可以跟踪以前的移动设备,通过定期向服务器发送花粉(每5秒一次)并获取最新位置

该通信是通过信号机(用于发送最新位置)还是通过定时器进行?我这样说是因为信号器有一些开销,这会产生更大的请求大小,这可能非常昂贵

谢谢,, RYan

HTTP通信胜利 现在,根据我对您描述的理解,您正在执行多个更新帖子,然后侦听器正在使用轮询GET请求。它们有单独的HTTP请求头的开销,如果不使用keep-alive或超过keep-alive超时,[重新]建立TCP连接

使用SignalR,您将能够至少改进轮询GET端,因为SignalR可以使用长轮询,这将在单个HTTP GET请求上返回多个响应,并“实时”执行,而不是总是有4秒的延迟时间。从那里,您可以根据客户机和服务器的功能,逐步完成服务器发送事件(SSE)到完整的web套接字。这些方法中的任何一种都应该比您当前描述的实现更有效

请求大小赢 每个信号机信息周围只有一个小“信封”。与HTTP头相比,您的浏览器客户端在每次更新发布和轮询时都必须立即发送HTTP头,我认为SignalR将轻松赢得这一点。显然,在这两种情况下,消息的有效负载都是相同的JSON,因此这是一种清洗

编程模型win
最重要的是,我认为,使用SignalR为您提供了一个编程模型,该模型将您从最终使用的确切底层技术中抽象出来,并为您提供一致的实时通信API,而不必最终担心出现断开连接的请求/响应模型。

在服务器端建立连接的开销是多少服务器端打开等待响应?例如,即使是那些可能将浏览器选项卡打开到站点并且一周内没有使用的用户。我的理解是(这是有限的)信号自动重新打开关闭的连接。因此,这可能是服务器端的大量连接。不想争论,只是想了解你对此的见解。谢谢:)请观看构建中的信号器对话(下面的链接),了解一些最新位的可伸缩性数字,但它可以扩展到每台机器数十万个。它之所以能够做到这一点,是因为它都是异步I/O,所以除非有什么东西需要交流,否则不会浪费主要资源。