标签: real-time

实时ASP.NET MVC Web应用程序

我需要在我的Web应用程序中添加一个"实时"元素.基本上,我需要检测存储在SQL Server表中的"更改",并在发生更改时更新UI的各个部分.

我目前通过民意调查这样做.我每隔3秒向服务器发送一个ajax请求,要求进行任何新的更改 - 然后返回并处理这些更改.它有效,但我不喜欢它 - 这意味着对于每个浏览器,我将经常发出这些请求,并且服务器将始终忙于处理它们.简而言之,它不能很好地扩展.

是否有任何聪明的替代方案可以避免轮询开销?

编辑

为了完整性,我正在更新这个,以提及我们最终使用的解决方案 - SignalR.它的操作系统来自微软.它越来越受欢迎,我可以衷心地推荐这个,或者我们也看过的WebSync.

asp.net-mvc real-time

13
推荐指数
3
解决办法
6738
查看次数

是否存在不希望优先级继承的情况?

我理解优先级继承是什么.我也理解,从Mars Pathfinder的系统重置问题来看,大多数情况下,根据操作的重要性,启用/实现优先级继承是好的.

但是,是否存在不希望优先级继承的情况,如果启用/实现可能会导致问题?如果是这样,你能提供一个例子,最好是描述一个问题吗?

language-agnostic scheduling real-time thread-priority

13
推荐指数
1
解决办法
473
查看次数

对于实时编程,引用计数在确定性方面是否优于垃圾收集?

如果您正在设计一种具有自动内存管理功能的编程语言,那么使用引用计数是否允许使用垃圾收集器无法实现的确定性保证?

针对功能语言和命令式语言,这个问题会有不同的答案吗?

garbage-collection programming-languages functional-programming real-time

12
推荐指数
2
解决办法
1288
查看次数

使用Node.js实时读取文件

我需要使用node.js实时读出正在写入文件的数据的最佳方法.麻烦的是,Node是一艘快速发展的船,它使寻找解决问题的最佳方法变得困难.

我想做什么
我有一个正在做某事的java进程,然后把它做的事情的结果写到文本文件中.它通常需要5分钟到5个小时才能运行,数据写入的时间很长,并且可以达到一些相当高的吞吐率(大约1000线/秒).

我想实时读取这个文件,然后使用节点聚合数据并将其写入套接字,在套接字上可以在客户端上绘制图形.

客户端,图形,套接字和聚合逻辑都已完成,但我对阅读文件的最佳方法感到困惑.

我尝试过(或者至少玩过)
FIFO - 我可以告诉我的Java进程写一个fifo并使用node读取它,这实际上是我们如何使用Perl实现这个目的,但是因为其他一切都在节点中运行将代码移植过来是有意义的.

Unix Sockets - 如上.

fs.watchFile - 这会对我们需要的东西起作用吗?

fs.createReadStream - 这比watchFile好吗?

fs&tail -f- 似乎是一个黑客.

实际上,我的问题是什么,
我倾向于使用Unix套接字,这似乎是最快的选择.但节点是否具有更好的内置功能,可以实时读取fs中的文件?

javascript real-time fifo unix-socket node.js

12
推荐指数
2
解决办法
2万
查看次数

移动设备之间的实时P2P通信

我正在构建一个需要向其他设备发送实时信息的移动设备.我考虑过XMPP,但我没有服务器,因此通信必须只在设备之间进行.

有没有办法在没有服务器的移动设备之间使用XMPP进行通信(或者使用移动设备作为服务器)?

套接字是个好主意吗?即拥有一个ServerSocket和客户端Socket并以这种方式进行通信.

有更聪明的方法吗?我听说过jWebSocket,但我真的不知道它是如何工作的,或者它是否值得.

编辑

过程如下:

  1. 我正在使用Parse作为服务器/后端http://parse.com
  2. 当用户运行应用程序时,将从解析服务器检索用户列表
  3. 然后用户拥有(可能拥有)其他客户端的IP,然后尝试与他们通信.

问题
1. Parse不支持XMPP服务器或其他类型的服务器

android p2p real-time

12
推荐指数
1
解决办法
2万
查看次数

Android(Java)实时音频输入(麦克风和USB)和输出

我想构建一个Android应用程序来从两个麦克风中获取音频数据,将声音与一些内存混合,然后通过耳机播放声音.这需要实时完成.你可以参考我的一些教程或任何参考资料,用于Java eclipse的实时音频输入,混合和输出吗?

到目前为止,我能够录制声音,保存它,然后播放它,但是我找不到任何教程可以通过这种方式实现与声音硬件的实时接口.

注意:一个麦克风通​​过分离器连接到Android的3.5毫米耳机插孔,另一个麦克风通​​过USB端口连接.

谢谢!

java audio android real-time microphone

12
推荐指数
1
解决办法
5481
查看次数

将多个客户端从同一主机连接到信号服务器块

作为我教育项目的一部分,我正在测试几种.net实时通信方法.其中一个是信号灯.出于这个原因,我有两个程序:

  • ServerHostApp-具有Microsoft.AspNet.SignalR.Hosting.Self.Server的WPF应用程序,它公开单个Hub.
  • ClientHostApp-托管许多信号器客户端的WPF应用程序

这些程序的典型工作流程是:启动服务器 - >使用ClientHostApp-> run tests连接一些客户端.

如果程序同时托管在同一台计算机上,但如果尝试在不同的计算机上运行程序,则会出现问题.特别是,我无法从单个ClientHostApp实例连接多个客户端.

服务器代码:

 //starting up the server
public override void Start()
{
  string url = "http://*:9523/MessagingServiceHostWPF/";
  Server = new SignalR.Hosting.Self.Server(url);
  Server.MapHubs();
  Server.Start();
}
Run Code Online (Sandbox Code Playgroud)

...

//one of the methods inside the hub exposed by the server
    public DataContracts.ClientInfo AcknowledgeConnection(string handle)
    {
       ServerLogic.DataContracts.ClientInfo clientInfo = SignalRApplicationState.SingletonInstance.AddClient(handle, Context.ConnectionId);;
       return clientInfo;
     }
Run Code Online (Sandbox Code Playgroud)

ClientHostApp:

//starting many clients in a loop
foreach (var client in _clients)
{
  client.Start();
}
Run Code Online (Sandbox Code Playgroud)

...

//method inside the Client class
public async void Start() …
Run Code Online (Sandbox Code Playgroud)

.net real-time signalr

12
推荐指数
1
解决办法
2403
查看次数

Backbone.js:为Backbone.sync实现定义超时

我在我的项目中使用骨干,与外部API的通信集成.我想使用记录的实时更新.由于我无法访问此外部应用程序的主后端,并且它们既不提供websocket服务器也不提供长轮询端点,所以我基本上可以选择使用setInterval进行常规轮询,并且周期为50秒.它一直运作良好.我的问题是边缘情况.如果出于某种原因,API请求会挂起,超过50秒,我想说,我将立即触发新请求.这意味着,现在有2个挂起请求,最终会加起来.有没有办法为请求设置超时?我知道所有请求都导致Backbone.sync,但我正在检查源代码,我没有看到任何可行的方法来设置XmlHttpRequest的超时.有没有办法干净地完成这项工作而不会覆盖行为?还是有其他解决方案/解决方法吗?

ajax real-time polling backbone.js

12
推荐指数
1
解决办法
8382
查看次数

socket.io确定用户是在线还是离线

我们可以跟踪此代码是建立还是断开连接

console.log('a user connected');
    socket.on('disconnect', function () {
        console.log('user disconnected');
    });
Run Code Online (Sandbox Code Playgroud)

好吧,很好.但是我们如何确定用户连接或脱机的用户.我的客户端是用户编写的,PHP/HTML所以他们有一个用户ID.

real-time websocket node.js socket.io

12
推荐指数
2
解决办法
1万
查看次数

如何从 count-min-sketch 中获取前 K 个元素?

我正在阅读如何使用概率数据结构count-min-sketch来查找数据流中的前 k 个元素。但我似乎无法理解我们维护堆以获得最终答案的步骤。

问题:

我们有一个项目流[B, C, A, B, C, A, C, A, A, ...]。我们被要求找出前 k 个最常出现的项目。

我的理解是,这可以使用微批处理来完成,在微批处理中,我们在开始做一些实际工作之前积累 N 个项目。

hashmap +heap方法对我来说很容易理解。我们遍历微批次并{B:34, D: 65, C: 9, A:84, ...}通过计算元素来构建频率图(例如 )。然后,我们通过遍历频率图来维护大小为 k 的最小堆,根据[item]:[freq]需要向堆添加和从堆中删除。足够简单,没有什么花哨的。

现在使用CMS+heap,而不是哈希图,我们有了这个概率有损二维数组,我们通过遍历微批次来构建它。问题是:给定这个 CMS,我们如何维护大小为 k 的最小堆?

CMS只包含一堆数字,而不是原始项目。除非我还保留微批次中的一组独特元素,否则我无法知道最后需要针对哪些项目构建堆。但如果我这样做,那不是违背了使用CMS节省内存空间的目的吗?

我还考虑过在遍历列表时实时构建堆。随着每个项目的进入,我们可以快速更新 CMS 并获取该项目在该点的累积频率。但这个频率数字是累积的这一事实对我没有多大帮助。例如,通过上面的示例流,我们将得到[B:1, C:1, A:1, B:2, C:2, A:2, C:3, A:3, A:4, ...]. 如果我们使用相同的逻辑来更新我们的最小堆,我们将得到不正确的答案(有重复)。

我肯定在这里遗漏了一些东西。请帮助我理解。

real-time frequency distributed-computing stream count-min-sketch

12
推荐指数
1
解决办法
2467
查看次数