using SuperSocket;
|
using System;
|
using System.Collections.Generic;
|
using System.Linq;
|
using System.Text;
|
using System.Threading.Tasks;
|
using SuperSocket.ProtoBase;
|
using SuperSocket.Server;
|
using SuperSocket.Channel;
|
using Microsoft.Extensions.Hosting;
|
using Microsoft.Extensions.Logging;
|
using IStation.Model;
|
using IStation.Server.SZJTKT.Interface;
|
|
namespace IStation.Server
|
{
|
internal class ServerHelper :IJobHelper
|
{
|
private IServer _server = null;
|
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},开启成功!");
|
}
|
|
public async void Cancel()
|
{
|
if (_server == null)
|
return;
|
await _server.StopAsync();
|
LogHelper.Info($"Socket服务,端口:{ConfigHelper.ServerPort},关闭成功!");
|
}
|
|
|
}
|
}
|