namespace IStation.Server
|
{
|
internal class SocketHelper : IJobHelper
|
{
|
private IServer _server = null;
|
|
/// <summary>
|
/// 开始
|
/// </summary>
|
public async void Start()
|
{
|
if (_server != null)
|
{
|
return;
|
}
|
var host = SuperSocketHostBuilder.Create<PackageInfo>();
|
host.UsePipelineFilterFactory<PipeLineFilterFactory>();
|
host.UseSession<MySession>();
|
host.UseHostedService<MyServer>();
|
host.ConfigureSuperSocket(options =>
|
{
|
options.Name = "SZJTKT";
|
options.MaxPackageLength = 1000000;
|
options.ReceiveBufferSize = 1000000;
|
options.SendBufferSize = 1000000;
|
options.Listeners = new List<ListenOptions>()
|
{
|
new ListenOptions(){ Ip="Any",Port=ConfigHelper.ServerPort}
|
};
|
});
|
host.UsePackageHandler(RequestReceivedHelper.Receive);
|
_server = host.BuildAsServer();
|
await _server.StartAsync();
|
LogHelper.Info($"Socket服务,端口:{ConfigHelper.ServerPort},开启成功!");
|
}
|
|
/// <summary>
|
/// 取消
|
/// </summary>
|
public async void Cancel()
|
{
|
if (_server == null)
|
return;
|
await _server.StopAsync();
|
LogHelper.Info($"Socket服务,端口:{ConfigHelper.ServerPort},关闭成功!");
|
}
|
|
|
}
|
}
|