小编Lu4*_*Lu4的帖子

SignalR是否提供消息完整性机制,确保在客户端重新连接期间不会丢失任何消息

抽象

嗨,我在思考是否可以使用SignalR松开消息.假设客户端断开但最终在很短的时间内重新连接,例如3秒.客户端是否会收到断开连接时发送给他的所有消息?

例如,让我们考虑LongPolling传输.据我所知,长轮询是一个简单的http请求,由客户端提前发出,以便等待服务器事件.

一旦服务器事件发生,数据就会在http请求上发布,从而导致在发出的http请求上关闭连接.之后,客户端发出新的http请求,再次重复整个循环.

问题

假设两个事件发生在服务器上,第一AB(几乎瞬时).客户端获取A与关闭http连接结果的消息.现在要获取消息B客户端必须发出第二个http请求.

如果B事件发生在客户端与服务器断开连接并尝试重新连接时.

客户端是否会B自动获取消息,或者我必须发明某种确保消息完整性的机制?

这个问题不仅适用于长轮询,也适用于客户重新连接的一般情况.

PS我在服务器端使用SignalR Hubs.


编辑:

我发现消息的顺序无法保证,我无法使SignalR松散消息

signalr signalr-hub signalr.client

7
推荐指数
1
解决办法
1273
查看次数

如何从帧缓冲区解除纹理绑定

我正在尝试将各种场景渲染为一组纹理,每个场景都有自己的纹理到应该绘制的位置......

问题:

创造说有多糟糕的说512 FBO的512个纹理绑定到它们每个.仅使用一个FBO不是更好吗,在这种情况下,我需要解除先前绑定到FBO的纹理,我该怎么做,还是应该坚持512个FBO?

opengl

6
推荐指数
2
解决办法
5676
查看次数

在.Net 4.0中使用差的mans async/await构造实现异步超时

动机

C#5.0异步/等待构造非常棒,但遗憾的是,微软只展示了.NET 4.5和VS 2012的候选版本,这些技术将在我们的项目中得到广泛采用需要一些时间.

在Stephen Toub的异步方法,C#迭代器和任务中,我找到了一个可以在.NET 4.0中很好地使用的替代方法.还有十几个其他实现甚至可以在.NET 2.0中使用该方法,尽管它们看起来很少过时且功能较少.

所以现在我的.NET 4.0代码看起来像(注释部分显示它是如何在.NET 4.5中完成的):

//private async Task ProcessMessageAsync()
private IEnumerable<Task> ProcessMessageAsync()
{
    //var udpReceiveResult = await udpClient.ReceiveAsync();

    var task = Task<UdpAsyncReceiveResult>
               .Factory
               .FromAsync(udpClient.BeginReceive, udpClient.EndReceive, null);

    yield return task;

    var udpReceiveResult = task.Result;

    //... blah blah blah

    if (message is BootstrapRequest)
    {
        var typedMessage = ((BootstrapRequest)(message));

        // !!! .NET 4.0 has no overload for CancellationTokenSource that 
        // !!! takes timeout parameter :(
        var cts 
          = new CancellationTokenSource(BootstrapResponseTimeout); // Error here

        //... …
Run Code Online (Sandbox Code Playgroud)

c# timeout pattern-matching task-parallel-library async-await

6
推荐指数
2
解决办法
2469
查看次数

用于标记查询的javascript正则表达式

嗨,我偶然发现了与正则表达式相关的问题,我无法解决.

我需要将查询标记化(将查询拆分为部分),假设以下一个作为示例:

These are the separate query elements "These are compound composite terms"
Run Code Online (Sandbox Code Playgroud)

我最终需要的是拥有7个令牌的数组:

1) These
2) are
3) the
4) separate
5) query
6) elements
7) These are compound composite term
Run Code Online (Sandbox Code Playgroud)

第七个标记由几个单词组成,因为它在双引号内.

我的问题是:是否可以使用一个正则表达式相应地将输入字符串标记为上述解释?

编辑

我对使用Regex.exec或类似代码的可能性感到好奇,split而不是在实现同样的事情时,所以我做了一些调查,然后是另一个问题.因此,作为问题的另一个答案,可以使用以下正则表达式:

(?:")(?:\w+\W*)+(?:")|\w+
Run Code Online (Sandbox Code Playgroud)

使用以下单线使用方案:

var tokens = query.match(/(?:")(?:\w+\W*)+(?:")|\w+/g);
Run Code Online (Sandbox Code Playgroud)

希望它会有用......

javascript regex

6
推荐指数
1
解决办法
358
查看次数

面试任务:检查数组是否包含O(n)时间和O(1)附加内存中的对

这是我在面试中被问到的任务的一个例子,我认为这个任务拼写错误或定义不正确但也许我错了,所以这里有:

需要提供一个函数实现,它检查参数数组是否只包含重复项,例如提供了两个数组:

var x = [11,12,11,12]; // True, array consists of duplicates
var y = [66, 3278, 12, 12]; // False, 66 and 3278 contain no pair
Run Code Online (Sandbox Code Playgroud)

问题在于约束,算法应该在O(n)时间内执行此检查,具有O(1)存储空间

你怎么想,是否可能,因为我没有看到可能发生的方式......

arrays algorithm

6
推荐指数
1
解决办法
157
查看次数

TypeScript中的原子类型判别(标称原子类型)

我只是好奇者,有没有一种方法可以区分原子类型以提高TypeScript中的类型安全性?

换句话说,下面有一种方法可以复制行为:

export type Kilos<T> = T & { discriminator: Kilos<T> };   // or something else  
export type Pounds<T> = T & { discriminator: Pounds<T> }; // or something else

export interface MetricWeight {
    value: Kilos<number>
}

export interface ImperialWeight {
    value: Pounds<number>
}

const wm: MetricWeight = { value: 0 as Kilos<number> }
const wi: ImperialWeight = { value: 0 as Pounds<number> }

wm.value = wi.value;                  // Should give compiler error
wi.value = wi.value * 2;              // Shouldn't error, …
Run Code Online (Sandbox Code Playgroud)

typescript

6
推荐指数
1
解决办法
182
查看次数

如何在group by中排序值

请考虑以下SQL Server表:

  ID  |   X   |   Y
------+-------+-------
   1  |   1   |   1
   2  |   1   |   2
   3  |   1   |   3
   4  |   2   |   40
   5  |   2   |   500
   6  |   3   |   1
   7  |   3   |   100
   8  |   3   |   10
Run Code Online (Sandbox Code Playgroud)

我需要选择Y的最大值为Y的行的ID,即:

  ID  |   X   |   Y
------+-------+-------
   3  |   1   |   3
   5  |   2   |  500
   7  |   3   |  100
Run Code Online (Sandbox Code Playgroud)

查询将嵌套多次,因此需要最佳性能解决方案......

sql sql-server greatest-n-per-group

5
推荐指数
1
解决办法
2232
查看次数

将蒙娜丽莎呈现给PBO

阅读完这篇文章之后,我想尝试做同样的事情,但为了加速我想在GPU上执行的渲染部分,不用说为什么三角形或任何其他几何对象应该在GPU上渲染而不是中央处理器.

这是一个很好的过程形象:

蒙娜丽莎

任务:

  1. 渲染'顶点集'
  2. 估计渲染的'顶点集'和蒙娜丽莎图像之间的逐像素差异(蒙娜丽莎位于GPU上的纹理或PBO没有太大区别)

问题:

使用OpenCL或Cuda与OpenGL FBO(帧缓冲对象)扩展时.

在这种情况下根据我们的任务

  1. 渲染'顶点集'(由OpenGL处理)
  2. 估计渲染的"顶点集"和蒙娜丽莎图像(由OpenCL或Cuda处理)之间的逐像素差异

因此,在这种情况下,我不得不从FBO到PBO(像素缓冲区对象)进行复制,以获得OpenCL/Cuda的渲染"顶点集".我知道设备到设备内存的复制速度有多快,但根据我需要完成数千个这样的副本的事实,不这样做是有意义的......

这个问题有三个选择:

  1. 使用OpenGL渲染到PBO(不知何故,我不知道如何,也可能无法这样做)
  2. 使用OpenGL渲染图像并估计图像之间的差异(不知何故,我不知道如何使用着色器,唯一的问题是我从未在生活中编写着色器,这可能需要数月的工作时间我...)
  3. 使用OpenCL/Cuda渲染图像并估计图像之间的差异(我知道如何做到这一点,但是在OpenCL或Cuda中实现渲染器的稳定性和或多或少优化版本需要几个月)

这个问题

任何人都可以帮我编写一个着色器用于上述过程,或者可能指出将蒙娜丽莎渲染到PBO而没有来自FBO的副本的方式......

opengl cuda gpgpu opencl

5
推荐指数
0
解决办法
958
查看次数

openssl生成的私钥不满足n = p*q

我使用以下命令使用openssl生成了一个密钥

openssl genrsa 1024
Run Code Online (Sandbox Code Playgroud)

我得到了以下结果

-----BEGIN RSA PRIVATE KEY-----
MIICXAIBAAKBgQC2Lh4HLcCR76Wv3oXl6sZ7pv8l9b/66H+I6Bb86tz8RhWCmTCG
xPVgtZ+w9WutU/rqBHHZOpotX4QDksRD8dRFh6a3HwkIFQdTcDoiD39yNP8F02Gd
dAl8p/URC5jNCLMSfUK38wMocmoI1I5vqdMNrzUnOup18rl4089Z+faMKQIDAQAB
AoGBAJrL4z5iWiengxqV8yETBeU8WcJft+n0dapXzHDNAUo8Izr+AIYEBp1Ot4se
f4igu6zuae80JJ45c2u14p/5dWzN9/URmhTP8xLGjGCjltOJLLyhBPP+ZsLjqu6l
57MNV6jDqDLdRC66w4NMRCN3FACxcldIC5L6B9OA7UvO1ugBAkEA8s1o6BvufTeD
ktyOMfW0ZeLGk/6EXp8nf7BIzYhAAPtSt8DegnfYFx2XDgKnYSB15dTDIDMe/KaA
GcuUb/ZjiQJBAMATb1fFdl7PGccVPgeTaupJayHPySc9PSsACV6VIAnpcU/3NZzd
MkdIL/JsOsD+1M9uQJqvRZO4qQdjcR5Om6ECQEJGgYlB/pJdcePHomTOvcRF55CE
G9u8M8rt8qFvvJDICWcxFUulrO16XT4syUWA1825it2iNqYeSL9By63YIokCQBnm
RPw71xM/r8UleyDAYwlGbxi3EPOmkUnsDldfmltby/ixZ9xIA1CTTkvNBjsh4YY6
4qE5AxPBMaGaahVhGiECQHyQvXUNE2IUco+ZwmmLnb2ey1s5tBg7i0lEZG47G7GV
o+yKdJHpToJD8eRJA/2D+pMhQIZm8X/XDIoi1AQ/TRY=
-----END RSA PRIVATE KEY-----
Run Code Online (Sandbox Code Playgroud)

通过使用http://lapo.it/asn1js/我已经在上面反编译pem并发现了这一点

p = 12716592588957205057720227362856602359162165918588008158928004904780617816265357754968000322907349867949577092305558696339499022301055839537975977118688137

q = 10059832080410675679274931119486090017360564066559599189867309386706046720813347145402059918876964980032136051476889631968099168811652389989474036177869729
Run Code Online (Sandbox Code Playgroud)

但在平均时间模数

n = 127931248913253271289716500205639992466284651287857358177145251825312810367993147780821624164062592337708505486275588028025122128928225266601591073331803580493341719724935049328478344297205955905466581637169109448199715137939448946445804542355907923908845024638480376219852266194827768486624319018352514599977
Run Code Online (Sandbox Code Playgroud)

当它应该相等时:

N = 127926786079904340486324750015310657558743663036816604629670248604945247855865212421871439992814824964459404054462886419168595224468110358113599485755243718536935880977456835036272916419632947427885989469252242704342884476060911074859116149906854382812141105735147419775039435625802885168567201322191763704873
Run Code Online (Sandbox Code Playgroud)

为什么地狱N不等于p * q


编辑:

这是我的openssl生成的一堆密钥,我使用的是Mac OS X Mavericks,第一个密钥有正确的N,第二个密钥不正确,我没有检查过其他密码,但无论如何这个问题似乎都在复制,我' m使用以下openssl版本"OpenSSL 0.9.8y 2013年2月5日":

-----BEGIN RSA PRIVATE KEY-----
MIICXQIBAAKBgQDb4ZTDCASpFV+89RzD8MYR/xASV/piyXB3+qVq+PueDqq+45EL
Xt5UE2jXanfOh3uE3G3Fi76rm08XUC0CvFB7DxFJAMvchr5LbE9x2EMDmfpuZPOI
bDI+r+XZ+KJF++h296TOnncgnXILoD1gihkld7MS9g49TwsBPOtsMJzDRQIDAQAB
AoGBAMpGFfTormjhacZJcqHqIDwz+RP27TbtetJUuNHUpJw9f+PFMwxTxJFxnZP1
tKtAxWdu5GjDaq8xW6vlrNKEbD9jg2WU/myYffNeHxNVjivzypeQzBSmcE5LKFpM
objHkvXbBkkyX8Oh6ZF/3+NOhxOVZMH7CaZ90a+xPf7ENXJBAkEA+Zx/rwrx81+D
s79thCAUU4EnMVROGFPr/V7mt9AFXjAXHRuvg49Aon23bt48jdroakV5vk0ltKO8
Z5xnRWlGNQJBAOGCSOL+zFJd6zTM+CkbgGtml+DIunr7Avfu2mZyaMv4mLo+GTRN
ctZEKhknYfydewhORLKg51WdLThoe9VG6tECQCUyIvzMnr1rkE6qygEUXrMK3fJF
49VQPCxnhe4CO6qLdAZMZ90s7a7JGRqWV2O0KUoczEWFbYb7l0nBTspTI7kCQGmT
L0BmfY3KPoWXuE62e2bMvyoTj4pn3bnpbwIrafikSAxZaj9cSvkZLIReNbeomqMG
0Y63WdZxIWyZLfBppSECQQCEIkbINrQPJHoLtD57AbptUeyaE5lQBurzXMVf84FA
OJjd5OKmEX+LYbLguzOjvkcysNEZBRphz4L07shvscBC
-----END RSA PRIVATE …
Run Code Online (Sandbox Code Playgroud)

openssl cryptography rsa

5
推荐指数
1
解决办法
1056
查看次数

使用dart创建一个javascript库

问题

我目前正在开发一个JavaScript库,为了减少错误的数量,我认为我的库可能会受益于使用Dart的静态类型机制.首先,因为我的lib没有与HTML或其他JavaScript库进行任何互操作,只有纯javascript对象操作的东西.但是我没有在网上找到任何关于如何使用dart构建JS库的信息.所以我自己尝试这样做,创建了初始的dart文件:

library Repo;

class Type {
  final String name;
  final TypeCategory category;

  Type(String name, TypeCategory category) : name = name, category = category {
    category.types[name] = this;
  }
}

class TypeCategory {
  final String name;
  final Map<String, Type> types = new Map();

  TypeCategory(this.name);
}

class Branch {

}

class Descriptor {

}

class TableDescriptor extends Descriptor {
  TableDescriptor.ctor() {

  }
}

class Repo {
  Descriptor descriptor(String name) {

  }

  Branch branch(String name) {

  }

  void Merge() {

  }
} …
Run Code Online (Sandbox Code Playgroud)

dart dart-js-interop

5
推荐指数
1
解决办法
860
查看次数