我正在玩这个,能够使用 Node/Javascript 让它立即工作,使用 Golang 花了一些时间(这只是生成要发送到 coturn 的用户/密码。)注意秘密应该与 coturn 配置和 API 中的匹配JS/Go 方面。
coturn上的配置:/etc/turnserver.conf
listening-port=443
tls-listening-port=443
listening-ip=10.100.0.2
relay-ip=10.100.0.2
external-ip=123.456.78.9
min-port=10000
max-port=20000
verbose
fingerprint
lt-cred-mech
server-name=myserver
realm=myserver
cert=/etc/SSL/fullchain.pem
pkey=/etc/SSL/privkey.pem
log-file=/var/log/turnserver.log
use-auth-secret
static-auth-secret=MySecret
Run Code Online (Sandbox Code Playgroud)
以下是 Node/Js 实现 API(从其他地方复制 - 有效):
var crypto = require('crypto');
var unixTimeStamp = parseInt(Date.now()/1000) + 24*3600, // this credential valid for 24 hours
TempUser = [unixTimeStamp, "SomeUser"].join(':'),
TempPassword,
hmac = crypto.createHmac('sha1', "MySecret");
hmac.setEncoding('base64');
hmac.write(TempUser);
hmac.end();
TempPassword = hmac.read();
Run Code Online (Sandbox Code Playgroud)
以下是GOLANG实现API(花了点时间):
UserId := "SomeUser"
// This worked, returned the exact seconds
timestamp …Run Code Online (Sandbox Code Playgroud) 我有一个带密码字段的redux表单,在这个简单的示例中,尝试用随机数更新密码字字段。如何将“ this”绑定到结果?
axios.get('https://www.random.org/integers/?num=1&min=1&max=20&col=1&base=10&format=plain&rnd=new').then(function(result) {
this.props.change('password', result.data);
}).catch(function(error) {
this.props.change('password', '999');
});
Run Code Online (Sandbox Code Playgroud)
我知道上面的逻辑很好用,因为如果我使用ES5 var this1 = this; 并使用this1可以正常工作。
问候!