ningshuxia
2022-11-22 f513a628e40fe6bd874955e7ff6c4b7259b2b725
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
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},关闭成功!");
        }
 
       
    }
}