我有一个基于Protobuf的自定义协议,我已将其作为EventMachine协议实现,我想通过服务器和客户端之间的安全连接使用它.每次我从客户端向服务器发送消息时,我都会在消息前面加上一个4字节的整数,表示要发送的Protobuf序列化字符串的大小,以便服务器在解析之前知道要读取多少字节数.数据回到Protobuf消息.
我打电话start_tls的post_init同时在客户端和服务器协议处理程序回调方法,用一个中传递的服务器私钥和证书的服务器处理器.根据我正在打印的日志消息,在此阶段似乎没有发生错误.
我遇到麻烦的是当我开始receive_data在服务器的处理程序代码中解析回调中的数据时......我从线上读取4个字节的数据并将其解压缩为整数,但得到解压缩的整数不是相同的整数I从客户端发送(即我发送17,但收到134222349).
请注意,当我不使用TLS时,这不会发生...如果我删除start_tls客户端和服务器代码中的调用,一切正常.
是否在使用TLS时将SSL/TLS数据传递给receive_data回调?如果是这样,我如何知道客户端的数据何时开始?我似乎无法找到任何讨论此用例的示例代码...
我正在使用ClientCAs和ClientAuth选项tls.Config在我的Go HTTP应用程序中进行基于证书的客户端身份验证.是否可以根据提供的CRL验证客户端证书?我在x509包中看到CRL周围有一些功能,但我不知道如何配置HTTP服务器来使用它们(即,似乎没有任何选项tls.Config会导致CRL也被使用) .
我正在搞乱Ruby Grit gem ...看看我如何使用它来管理/访问我正在运行的Gitosis服务器.有谁知道是否有可能将文件添加/提交到本地裸仓库,或者我是否需要设置本地"正常"仓库并使用SSH将其推送到本地主机上的裸仓库?
我不是数学家,所以我真的不知道我想做的是什么,但是我敢肯定有个名字。;-)
我想在Ruby中生成一个随机数数组,该数组的每个元素的平均值遵循正弦波。我的意思是每个元素的平均值n是ary[0..n].inject(:+).to_f / (n + 1)。因此,如果我从0..n随机数数组中循环并像我描述的那样生成平均值,我希望结果值遵循正弦波。我只是不知道如何以这种方式实际生成随机数...
# assuming `ary` is the array of random numbers
# I'm trying to figure out how to generate...
averages = []
(0..ary.size).each do |n|
averages << ary[0..n].inject(:+).to_f / (n + 1)
end
# `averages` should plot as a sine wave now...
Run Code Online (Sandbox Code Playgroud)