JavaScript去中心化代码实现p2p通信

安装

npm i bugout

或者使用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('特定的共享标识符')

未完待续

你可能感兴趣的:(JavaScript去中心化代码实现p2p通信)