【发布时间】:2021-01-07 05:24:26
【问题描述】:
我正在构建一个区块链应用程序,我从服务器向客户端发送请求,服务器想要在链上添加一个块,如果所有客户端都批准该请求,服务器将向链上添加一个块.这是我的代码。
Server.js
const express = require('express');
const app = express();
const http = require('http').createServer();
var port = 3000;
const io = require('socket.io')(http);
const io2 = require('socket.io-client');
const io3 = require('socket.io-client');
//const io4 = require('socket.io')(http);
const fs = require('fs');
var block = require('./blockchain');
var count = 0;
var bcdata = {};
let socket2 = io2.connect("http://localhost:3001");
socket2.on('client12other', (data)=>{
console.log("Data Received from Client: ", data);
if(data == "Client-1: Approved"){
count++;
}
});
let socket3 = io3.connect("http://localhost:3002");
socket3.on('client22other', (data)=>{
console.log("Data Received from Client: ", data);
if(data == "Client-2: Approved"){
count++;
}
});
io.on("connection", (socket) => {
socket.emit("server2client","Need Approval");
console.log("Receiver Connected ");
});
http.listen(port, () => {
console.log("Server is up at port: "+port);
setTimeout(a, 2000);
//a();
});
//console.log("End of File");
function a(){
console.log("Inside function a");
let data = blockAdd();
if(data != null){
io.on("connection", (socket) => {
socket.emit("sendblock",bcdata);
console.log("BC Sent! ");
});
}
else{
console.log("Data is null");
}
}
function blockAdd(){
if(count == 0){
block.blockAdd({FileName: "Anyfile", Author:"Sowvik",TimeStamp:"1/1/2021", Size:"500MB", Hash:"dsjfoiJKLJSLKJhflkzxnl85290sjdJFDSKL",Extension: ".mp3"});
block.blockAdd({FileName: "Test File", Author:"Mushfiq",TimeStamp:"1/5/2023", Size:"750MB", Hash:"dfgdgdfgdfsdvdfgnee534",Extension: ".ransomware"})
block.blockAdd({FileName: "Movie", Author:"Test",TimeStamp:"1/1/2021", Size:"500MB", Hash:"dfhhKHWDQIowieyoy(*Y*(y0394L", Extension: ".txt"})
//block.printBlockchain();
bcdata = block.blockChainData();
return bcdata;
}
else
return null;
}
//var bcdata = block.blockChainData();
Client1.js
const io = require('socket.io-client');
const io3 = require('socket.io-client');
var request;
let socket = io.connect("http://localhost:3000");
console.log("Client Running....\n");
socket.once("server2client", (data)=>{
console.log("Data Received from Server: ",data);
request = data;
})
let socket2 = io3.connect("http://localhost:3002");
socket2.once('client22other', (data)=>{
console.log("Data Received from Client: ", data);
})
const http = require('http').createServer();
const io2 = require('socket.io')(http);
const express = require('express');
const app = express();
io2.on('connection', (socket2)=>{
if(request == "Need Approval")
socket2.emit('client12other', "Client-1: Approved");
//console.log("Client-1 Approved Request to Add chain");
})
socket.on("sendblock", (obj)=>{
console.log("BlockChain Received from Server: ");
console.log( obj);
})
http.listen(3001,()=>{
console.log("Client 1 is listening at 3001!");
})
Client2.js
const express = require('express');
const app = express();
//const http = require('http').createServer();
var requ;
const cio = require('socket.io-client');
let socket = cio.connect('http://localhost:3000');
socket.on('server2client',(data)=>{
console.log("Received from server: ", data);
requ = data;
})
const cio2 = require('socket.io-client');
let socket2 = cio2.connect('http://localhost:3001');
socket2.on('client12other',(data)=>{
console.log("Received from client: ", data);
})
const http = require('http').createServer();
const sio = require('socket.io')(http);
const port = 3002;
sio.on('connection', (socket2)=>{
if(requ == "Need Approval")
socket2.emit('client22other', "Client-2: Approved");
})
socket.on("sendblock", (obj)=>{
console.log("BlockChain Received from Server: ");
console.log( obj);
})
http.listen(port, ()=>{
console.log("Client 2 is up! ");
})
这些是我的解决方案的代码。
【问题讨论】:
-
您的具体问题是什么?
标签: javascript node.js sockets socket.io request