更新:我得到了它的工作https://github.com/coolaj86/bizilio
我有这样一种情况,即客户打电话,该电话应转发给第一位代表回答(暂时只关注一位).
问题是偶尔会出现代表答案或电话关闭并直接进入语音邮件,这被检测为答案.
我想做的是提出一个挑战,例如使用收集并说出 "按2回答",超时5秒,然后连接呼叫(或放弃呼叫),如果没有代表响应转到语音邮件.
我不清楚如何将按2的人连接到正在响铃的电话.
我正在将一个预先存在的项目从 Socket.io (socket-io / socketio) 转换为普通的 Websockets,我想在转换期间并排运行这两个项目。
'use strict';
var app = require('express')();
var server = require('http').createServer(app);
var ws = require('ws');
var wss = new ws.Server({ noServer: true })
var io = require('socket.io')({ path: '/api/socket.io' });
server.on('upgrade', function upgrade(req, socket, head) {
if ('/api/ws' === req.url) {
wss.handleUpgrade(req, socket, head, function (ws) {
wss.emit('connection', ws, req);
});
} else if ('/api/socket.io' === req.url) {
io.XXXXX() // ??? <=== MISSING DOCUMENTATION FOR THIS
} else {
socket.destroy();
} …Run Code Online (Sandbox Code Playgroud) 是否有结束 exif / end-of-xmp / end-of-iptc / start-of-data 标记,我可以用它来获取 jpg/jpeg(和其他图像格式)的数据部分的校验和?
我正在设备上使用其他人的代码,该设备可以将图像输出/dev/fb/0并显示在视频上或通过网络发送到客户端应用程序.
我无法访问客户端应用程序的旧源代码,但我知道以下有关数据的信息:
cat-能够 /dev/fb/0如何为此标题或将其转换为JPEG,BMP或RAW类型,然后我可以在桌面应用程序中查看?
最终,我希望它在浏览器中是jpeg和可见的,但是我能用眼睛看到的任何东西现在都可以使用.
(见下面的评论)
ffmpeg \
-vcodec rawvideo \
-f rawvideo \
-pix_fmt rgb565 \
-s 720x480 \
-i in-buffer.raw \
\
-f image2 \
-vcodec mjpeg \
out-buffer.jpg
Run Code Online (Sandbox Code Playgroud)
在宽度方向上三次显示图像,几乎没有颜色,并垂直压扁:
rawtoppm -rgb -interpixel 720 480 fb.raw > fb.ppm
Run Code Online (Sandbox Code Playgroud)
显示图像,但条纹和垂直压扁和颜色不好:
rawtoppm -rgb -interrow 720 480 fb.raw > fb.ppm
Run Code Online (Sandbox Code Playgroud)
与上述类似
convert -depth 16 -size 720x480 frame_buffer.rgb fb.jpeg
Run Code Online (Sandbox Code Playgroud) 在此处给出的示例中,https://developers.google.com/youtube/iframe_api_reference可以看到,不是使用标准的css选择器语法,而是一个自定义字符串语法,似乎只引用了id.
<div id="player"></div>
// note no 'var' and yet this will work in strict mode
// since 'player' is being implicitly grabbed from the dom
player = new YT.Player('player', ...);
Run Code Online (Sandbox Code Playgroud)
这当然会产生泄漏全局变量的问题,无论id是什么名称,这是我试图避免的事情(因为它为严格模式创造了一个漏洞,只是令人困惑和意外的行为).
解决方法是对名称进行连字,以便无法从全局空间访问该名称
<div id="js-player"></div>
// now window['js-player'] is guarded from accidental access
var player = new YT.Player('js-player', ...);
Run Code Online (Sandbox Code Playgroud)
但最重要的是,使用ID只是不好的做法,我更喜欢完全避免它们,因为类很好地工作并且没有奇怪的副作用.
我需要解组 json 对象,它可能具有以下格式:
格式1:
{
"contactType": 2,
"value": "0123456789"
}
Run Code Online (Sandbox Code Playgroud)
格式2:
{
"contactType": "MobileNumber",
"value": "0123456789"
}
Run Code Online (Sandbox Code Playgroud)
我用于解组的结构是:-
type Contact struct {
ContactType int `json:"contactType"`
Value string `json:"value"`
}
Run Code Online (Sandbox Code Playgroud)
但这仅适用于格式 1。我不想更改 ContactType 的数据类型,但我也想适应第二种格式。我听说过 json.RawMarshal 并尝试使用它。
type Contact struct {
ContactType int
Value string `json:"value"`
Type json.RawMessage `json:"contactType"`
}
type StringContact struct {
Type string `json:"contactType"`
}
type IntContact struct {
Type int `json:"contactType"`
}
Run Code Online (Sandbox Code Playgroud)
这完成了解组,但我无法设置ContactType取决于 的类型的变量json.RawMessage。如何对我的结构进行建模才能解决这个问题?
我正在尝试设置greenlock-express来运行nginx代理.
这是我的nginx配置
...
# redirect
server {
listen 80;
listen [::]:80;
server_name mydomain.com;
location / {
return 301 https://$server_name$request_uri;
}
}
# serve
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name mydomain.com;
# SSL settings
ssl on;
ssl_certificate C:/path/to/mydomain.com/fullchain.pem;
ssl_certificate_key C:/path/to/mydomain.com/privkey.pem;
# enable session resumption to improve https performance
ssl_session_cache shared:SSL:50m;
ssl_session_timeout 1d;
ssl_session_tickets off;
# enables server-side protection from BEAST attacks
ssl_prefer_server_ciphers on;
# disable SSLv3(enabled by default since nginx 0.8.19) since it's less …Run Code Online (Sandbox Code Playgroud) 是否有为 JWK 创建指纹(又名指纹)的标准规范方法?
从我阅读的内容来看,标准似乎没有定义 akid应该如何指定,我觉得这很奇怪。对我来说,它是最重要的,因为它是一个确定性的值,而不是一个需要查找表的值,这样其他人可以通过拥有公钥轻松地重新创建密钥 ID。
我知道 SSH 指纹和 X.509 指纹是标准化的,但是对于使用 JWK 的所有环境(尤其是浏览器)来说,这些似乎不是一个合适的解决方案,因为它们对于幼稚的实现来说太复杂了,并且包括能够操作的库这样(即伪造)会浪费大量内存、带宽和虚拟机编译时间。
官方称它为“指纹”而不是“指纹”。
按照本指南https://git.coolaj86.com/coolaj86/ssl-root-cas.js/src/branch/master/Painless-Self-Signed-Certificates-in-node.js.md,我创建了一个使用以下脚本的根CA和签名证书:
make-certs.sh
#!/bin/bash
FQDN=`hostname`
# make directories to work from
rm -rf certs
mkdir -p certs/{server,client,ca,tmp}
# Create your very own Root Certificate Authority
openssl genrsa \
-out certs/ca/my-root-ca.key.pem \
2048
# Self-sign your Root Certificate Authority
# Since this is private, the details can be as bogus as you like
openssl req \
-x509 \
-new \
-nodes \
-key certs/ca/my-root-ca.key.pem \
-days 1024 \
-out certs/ca/my-root-ca.crt.pem \
-subj "/C=US/ST=Utah/L=Provo/O=${FQDN}/CN=${FQDN}"
# Create a Device Certificate for each …Run Code Online (Sandbox Code Playgroud) 我正在寻找一个HAProxy匹配SNI通配符的例子,我的搜索提出了类似的标题,但无关的证书问题.
具体来说,我需要使用acme/letsencyrpt为dvsni路由nonce域.
frontend foo_ft_https
mode tcp
option tcplog
bind 0.0.0.0:443
acl foo_app_letsencrypt req.ssl_sni -i *.acme.invalid
use_backend foo_bk_letsencrypt if foo_app_letsencrypt
default_backend foo_bk_default
backend foo_bk_letsencrypt
mode tcp
option tcplog
server foo_srv_letsencrypt 127.0.0.1:3443
backend foo_bk_default
mode tcp
option tcplog
server foo_srv_default 127.0.0.1:8443
Run Code Online (Sandbox Code Playgroud)
注意:所有任意名称都以'foo_'为前缀,以便读者可以轻松地将它们与关键字,指令等区分开来.
任何人都知道将解析CSS3选择器的片段如下:
"form#network_template[method='put'][action='#form_{keyname}']"
Run Code Online (Sandbox Code Playgroud)
对此:
{
tag: "form",
id: "network_template",
method: "put",
action: "#form_{keyname}"
}
Run Code Online (Sandbox Code Playgroud)
或这个:
<form id="network_template" method="put" action="#form_{keyname}">
Run Code Online (Sandbox Code Playgroud) 我正在使用 Node.js 请求模块向 Node.js 请求休息服务器。如果传入数据大小超出允许的限制,我想取消流。这样做的目的是确保我的网络没有被锁定。
我的代码示例如下;
var http = require("http");
async function httpRequest({
host,
method,
port,
path
} = params, data) {
if (method.toUpperCase() === "GET") {
let query = "";
data = JSON.parse(data);
for (var key in data) {
if (data.hasOwnProperty(key)) {
let value = data[key];
console.log(key + " -> " + value);
query = query
.concat("&")
.concat(key)
.concat("=")
.concat(value);
}
}
if (query) {
query = "?".concat(query.substring(1));
}
path = encodeURI(path.concat(query));
console.log("path : " + path);
}
var …Run Code Online (Sandbox Code Playgroud)