init commit all code
This commit is contained in:
137
Test/Getf.Service.Transfer.Request.SDK/RequestSevice.cs
Normal file
137
Test/Getf.Service.Transfer.Request.SDK/RequestSevice.cs
Normal file
@@ -0,0 +1,137 @@
|
||||
using Getf.Service.Transfer.Request.SDK.Entities;
|
||||
using Getf.Service.Transfer.Request.SDK.Helpers;
|
||||
using Newtonsoft.Json;
|
||||
using SuperSocket.ClientEngine;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Configuration;
|
||||
using System.Linq;
|
||||
using System.Net;
|
||||
using System.Text;
|
||||
using System.Threading;
|
||||
|
||||
namespace Getf.Service.Transfer.Request.SDK
|
||||
{
|
||||
public class RequestSevice : IDisposable
|
||||
{
|
||||
private readonly EasyClient TcpClient;
|
||||
|
||||
private TransInfo _TransInfo;
|
||||
|
||||
ManualResetEvent _ManualResetEvent = new ManualResetEvent(false);
|
||||
|
||||
private string AppID = ConfigurationManager.AppSettings["Service_Transfer_AppID"];
|
||||
private string AppSecret = ConfigurationManager.AppSettings["Service_Transfer_AppSecret"];
|
||||
private string Key = ConfigurationManager.AppSettings["Service_Transfer_Key"];
|
||||
private string Ip;
|
||||
private int Port;
|
||||
|
||||
/*public RequestSevice()
|
||||
{
|
||||
var c = ConfigurationManager.AppSettings["Service_Transfer_AddressInfo"].Split(':');
|
||||
_TcpClientService = new TcpClientService(c[0], int.Parse(c[1]));
|
||||
}*/
|
||||
public RequestSevice()
|
||||
{
|
||||
var c = ConfigurationManager.AppSettings["Service_Transfer_AddressInfo"].Split(':');
|
||||
Ip = c[0];
|
||||
Port = int.Parse(c[1]);
|
||||
TcpClient = new EasyClient();
|
||||
}
|
||||
|
||||
public RequestSevice(string ip, int port)
|
||||
{
|
||||
Ip = ip;
|
||||
Port = port;
|
||||
TcpClient = new EasyClient();
|
||||
}
|
||||
|
||||
public RequestSevice(string ip, int port, string appID, string appSecret, string key)
|
||||
{
|
||||
Ip = ip;
|
||||
Port = port;
|
||||
AppID = appID;
|
||||
AppSecret = appSecret;
|
||||
Key = key;
|
||||
TcpClient = new EasyClient();
|
||||
}
|
||||
|
||||
|
||||
public void Dispose()
|
||||
{
|
||||
_ManualResetEvent.Dispose();
|
||||
TcpClient.Close();
|
||||
}
|
||||
|
||||
public TransInfo GetResult(TransInfo transInfo)
|
||||
{
|
||||
_TransInfo = transInfo;
|
||||
TcpClient.Initialize(new ReceiveFilter(), OnDataGeted);
|
||||
TcpClient.Connected += OnConnected;
|
||||
TcpClient.Error += OnError;
|
||||
TcpClient.ConnectAsync(new IPEndPoint(IPAddress.Parse(Ip), Port));
|
||||
_ManualResetEvent.WaitOne();
|
||||
return _TransInfo;
|
||||
}
|
||||
public TransInfo GetResult(string targetAppID, string action = null, string param = null, string appID = null, string appSecret = null)
|
||||
{
|
||||
_TransInfo = GetTransInfo(targetAppID, action, param, appID, appSecret);
|
||||
return GetResult(_TransInfo);
|
||||
}
|
||||
|
||||
public TransInfo GetTransInfo(string targetAppID, string action, string param = null, string appID = null, string appSecret = null)
|
||||
{
|
||||
var ts = TypeHelper.GetTimeStamp();
|
||||
var r = new TransInfo()
|
||||
{
|
||||
Head = new TransHead()
|
||||
{
|
||||
AppID = AppID,
|
||||
AppSecret = AppSecret,
|
||||
TimeStamp = ts,
|
||||
Type = 2,
|
||||
Sign = Md5Helper.Md5(ts + Key)
|
||||
},
|
||||
Body = new TransBody()
|
||||
{
|
||||
Action = action,
|
||||
AppID = appID,
|
||||
AppSecret = appSecret,
|
||||
Param = param,
|
||||
TargetAppID = targetAppID
|
||||
}
|
||||
};
|
||||
return r;
|
||||
}
|
||||
|
||||
private void OnDataGeted(TransInfo transInfo)
|
||||
{
|
||||
_TransInfo = transInfo;
|
||||
_ManualResetEvent.Set();
|
||||
}
|
||||
|
||||
private void OnError(object sender, ErrorEventArgs e)
|
||||
{
|
||||
_TransInfo.Head = null;
|
||||
_TransInfo.Body = null;
|
||||
_TransInfo.TransResultInfo = new TransResult()
|
||||
{
|
||||
Code = -101,
|
||||
Message = e.Exception.Message
|
||||
};
|
||||
try
|
||||
{
|
||||
_ManualResetEvent.Set();
|
||||
}
|
||||
catch
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
private void OnConnected(object sender, EventArgs e)
|
||||
{
|
||||
TcpClient.Send(_TransInfo.ToByte());
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user