You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
95 lines
2.2 KiB
95 lines
2.2 KiB
using NetMQ;
|
|
using NetMQ.Sockets;
|
|
using System;
|
|
|
|
namespace EC.Utils.ZMQ
|
|
{
|
|
public class ZMQRequestHelper
|
|
{
|
|
public static string _dbSvrServer = "";
|
|
|
|
public ZMQRequestHelper(string dbSvrServer)
|
|
{
|
|
_dbSvrServer = dbSvrServer;
|
|
}
|
|
|
|
public string RequestFromServer(string jsonstr)
|
|
{
|
|
try
|
|
{
|
|
using (var requestSocket = new RequestSocket(_dbSvrServer))
|
|
{
|
|
requestSocket.SendFrame(jsonstr);
|
|
var timeout = new TimeSpan(0, 0, 1);
|
|
string recdata = "";
|
|
bool recSuccess = requestSocket.TryReceiveFrameString(timeout, out recdata);
|
|
// byte[] recdata = requestSocket.ReceiveFrameBytes();
|
|
if (recSuccess)
|
|
{
|
|
return recdata;
|
|
}
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
LogFactory.GetLogger().Error(ex);
|
|
}
|
|
return "";
|
|
}
|
|
|
|
/// <summary>
|
|
/// 通过zmq 访问服务器 类似API
|
|
/// </summary>
|
|
/// <param name="method"></param>
|
|
/// <param name="jsonstr"></param>
|
|
/// <returns></returns>
|
|
public ResultModel RequestFromServer(string method, string jsonstr)
|
|
{
|
|
RequestModel requestModel = new RequestModel();
|
|
requestModel.method = method;
|
|
requestModel.jsonstr = jsonstr;
|
|
return RequestFromServer(requestModel);
|
|
}
|
|
|
|
public ResultModel RequestFromServer(RequestModel requestModel)
|
|
{
|
|
ResultModel resultModel = new ResultModel();
|
|
try
|
|
{
|
|
using (var requestSocket = new RequestSocket(_dbSvrServer))
|
|
{
|
|
requestSocket.SendMoreFrame(requestModel.method).SendFrame(requestModel.jsonstr);
|
|
var timeout = new TimeSpan(0, 0, 3);
|
|
string result = "";
|
|
bool recSuccess = requestSocket.TryReceiveFrameString(timeout, out result);
|
|
// byte[] recdata = requestSocket.ReceiveFrameBytes();
|
|
if (recSuccess)
|
|
{
|
|
string recdata = "";
|
|
recSuccess = requestSocket.TryReceiveFrameString(timeout, out recdata);
|
|
if (recSuccess)
|
|
{
|
|
resultModel.result = result;
|
|
resultModel.jsonstr = recdata;
|
|
return resultModel;
|
|
}
|
|
else
|
|
{
|
|
resultModel.result = DBMethod.Net_Error;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
resultModel.result = DBMethod.Net_Error;
|
|
}
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
LogFactory.GetLogger().Error(ex);
|
|
resultModel.result = DBMethod.Net_Error;
|
|
}
|
|
return resultModel;
|
|
}
|
|
}
|
|
}
|