我试图通过使用请求 - 回复模式通过zeromq获得一个python程序与另一个python程序进行通信.客户端程序应该向回复的服务器程序发送请求.
我有两台服务器,当一台服务器发生故障时,另一台服务器接管.当第一台服务器工作时,通信工作正常,但是,当第一台服务器发生故障时,当我向第二台服务器发出请求时,我看到错误:
zmp.error.ZMQError:无法在当前状态下完成操作
服务器1的代码:
# Run the server
while True:
# Define the socket using the "Context"
sock = context.socket(zmq.REP)
sock.bind("tcp://127.0.0.1:5677")
data = sock.recv().decode("utf-8")
res = "Recvd"
sock.send(res.encode('utf-8'))
Run Code Online (Sandbox Code Playgroud)
服务器代码2:
# Run the server
while True:
# Define the socket using the "Context"
sock = context.socket(zmq.REP)
sock.bind("tcp://127.0.0.1:5877")
data = sock.recv().decode("utf-8")
res = "Recvd"
sock.send(res.encode('utf-8'))
Run Code Online (Sandbox Code Playgroud)
客户代码:
# ZeroMQ Context For distributed Message amogst processes
context = zmq.Context()
sock_1 = context.socket(zmq.REQ)
sock_2 = context.socket(zmq.REQ)
sock_1.connect("tcp://127.0.0.1:5677")
sock_2.connect("tcp://127.0.0.1:5877")
try:
sock_1.send(data.encode('utf-8'), zmq.NOBLOCK)
socks_1.setsockopt(zmq.RCVTIMEO, 1000) …Run Code Online (Sandbox Code Playgroud) 我一直在使用D3.js构建的交互式折线图.一个悬停我想要一个工具提示显示垂直线.垂直线很好,但是,我有与工具提示有关的问题.工具提示位置不在图表上,我只获得第一个数据元素.
这是我的代码:
margin = {
top: 20,
right: 20,
bottom: 20,
left: 50
};
var width = Math.max(250, Math.min(700, d3.select("#content").width- margin.left - margin.right)),
height = 500;
var vis = d3.select("#line_chart").append("svg")
.attr("width", width + margin.left + margin.right)
.attr("height", height + margin.top + margin.bottom);
max_x = 0, max_y = 0, min = 100;
d3.csv("line.csv", function(error, data) {
for(i=0; i < data.length; i++){
max_y = Math.max(max_y, data[i].number);
max_x = Math.max(max_x, data[i].class);
min = Math.min(min, data[i].class);
}
xScale = d3.scale.linear().range([margin.left, width - margin.right]).domain([min, max_x]), …Run Code Online (Sandbox Code Playgroud) 我一直在试验d3.js条形图,我想根据y轴的值改变颜色,我该如何实现.我尝试添加线性渐变,但后来我失去了对它的控制.
我正在处理的代码基于:http://bost.ocks.org/mike/bar/
我有这个用于分享照片的网络应用程序.
现在我有这条路线应该从以下数组返回所有用户的照片.
路线:
router.get('/getphotos',function(req, res){
var reqPhotos = [];
console.log( "\n" + req.body.username + "\n");
try{
for(x =0; x < req.body.following.length; x++){
reqPhotos.push({username: req.body.following[x].username});
}
}
catch(err){
console.log(err);
}
Photo.find({username: reqPhotos}).exec(function(err, allPhotos){
if(err){console.log(err);}
else{
res.json(allPhotos);
}
});
});
Run Code Online (Sandbox Code Playgroud)
我发现req.body.following是未定义的.这是我用angular调用它的方式:
$scope.getPhotos = function(){
if($scope.identification){
flng = angular.copy($scope.identification.following);
flng.push($scope.identification.username);
var data = {username: $scope.identification.username, token: $scope.identification.token, following: flng}
//IDENTIFICATION HAS ALL THE INFO.
$http.get('/users/getphotos', data).success(function(response){
$scope.photos = response;
});
}
}
Run Code Online (Sandbox Code Playgroud)
为什么会发生这种情况以及如何解决?
谢谢!
我有这个明确的应用程序与mongoDB作为数据库和把手作为我的服务器端模板引擎.我在我的应用程序中没有使用AngularJS或Ajax.
在其中一个路由中,我必须呈现页面以及从数据库发送json文件.但是,我无法做到这一点.
这是我的路线代码片段:
router.get('/disks', function(req, res, next) {
var risime;
places.find({"category": "disks"}, function(err, disk){
if(err){
throw err;
}
risime= disk;
console.log(risime); //PROPERLY LOGS THE OUTPUT
});
res.render('diskPage',
{
'disks': risime
});
});
Run Code Online (Sandbox Code Playgroud)
在hbs中,我试图捕获它,但我没有得到json数据:
var clrisime= "{{risime}}"
console.log(clrisime); // DOES NOT LOG ANYTHIN
Run Code Online (Sandbox Code Playgroud)
我该如何实现?