mirror of https://gitee.com/apiumc/Gateway.git
You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
68 lines
1.6 KiB
C#
68 lines
1.6 KiB
C#
using System;
|
|
using System.IO;
|
|
using System.IO.Pipes;
|
|
using System.Net;
|
|
using System.Net.Security;
|
|
using System.Net.Sockets;
|
|
using System.Security.Authentication;
|
|
using System.Security.Cryptography.X509Certificates;
|
|
using System.Threading.Tasks;
|
|
using UMC.Net;
|
|
|
|
namespace UMC.ITME
|
|
{
|
|
|
|
class HttpBridgeMime : HttpMime
|
|
{
|
|
HttpBridgeClient client;
|
|
public HttpBridgeMime(int pid, HttpBridgeClient client)
|
|
{
|
|
this.client = client;
|
|
this.pid = pid;
|
|
}
|
|
internal int pid;
|
|
public override string Host => "127.0.0.1";
|
|
|
|
public override string RemoteIpAddress => "127.0.0.1";
|
|
|
|
public override int Id => pid;
|
|
|
|
bool isDispose = false;
|
|
public override void Dispose()
|
|
{
|
|
if (isDispose == false)
|
|
{
|
|
isDispose = true;
|
|
if (this.Request is IDisposable)
|
|
{
|
|
((IDisposable)this.Request).Dispose();
|
|
}
|
|
client.Remove(this.pid);
|
|
}
|
|
}
|
|
public void WebSocket(byte[] buffer, int offset, int count)
|
|
{
|
|
try
|
|
{
|
|
this.Request?.Receive(buffer, offset, count);
|
|
}
|
|
catch
|
|
{
|
|
client.Write(this.pid, new byte[0], 0, 0);
|
|
this.Dispose();
|
|
}
|
|
}
|
|
|
|
|
|
|
|
public override void Write(byte[] buffer, int offset, int count)
|
|
{
|
|
if (count > 0)
|
|
{
|
|
client.Write(this.pid, buffer, offset, count);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|