安装
npm i bugout
或者使用script
<script src="https://chr15m.github.io/bugout/bugout.min.js"></script>
使用
导入Bugout
var Bugout = require('bugout')
创建Bugout服务器:
// 实例化Bugout
var b = new Bugout()
// 获取要与客户端共享的服务器地址(公钥哈希)
// 这是客户端将用于连接回该服务器的内容
// 注册远程用户可以进行的API调用
b.register('ping', function(address, args, callback) {
// 修改传递的参数并回复
args.hello = 'Hello from ' + b.address();
callback(args)
})
// 保存此服务器的会话密钥种子以重新使用
localStorage['bugout-server-seed'] = b.seed
客户端与服务器端链接
var b = new Bugout('服务器的公钥')
// 等待,直到我们看到服务器
// (可能要花一分钟时间才能穿过防火墙等)
b.on('server', function(address) {
// 一旦我们可以看到服务器
// 对其 进行API调用
b.rpc('ping', {'hello': 'world'}, function(result) {
console.log(result);
// {“ hello”:“ world”,“ pong”:true}
// 同时检查result.error
});
});
// 保存此客户端实例的会话密钥种子以重新使用
localStorage['bugout-seed'] = JSON.stringify(b.seed);
客户端和服务器与其他连接的客户端进行交互
// 从服务器接收所有带外消息
// 或其他任何连接的客户端
b.on('message', function(address, message) {
console.log('message from', address, 'is', message);
});
// 向所有连接的客户端广播未加密的消息
b.send({'hello': 'all!'});
// 将加密的消息发送到特定客户端
b.send(clientaddress, "Hello!");
// 只要我们在这个群组中看到新客户
b.on('seen', function(address) {
// e.g. send a message to the client we've seen with this address
});
// 您也可以关闭Bugout频道以停止接收消息等。
b.close();
补充
所有人连接共同的Bugout服务器
var b = new Bugout('特定的共享标识符')
未完待续