D-1071
핵심은 SuperSocket2.0으로 해보는 거다.
1. Visual Studio 2019 v16.10 필요
2. .NET5.0 이필요
위 1, 2 설치 고고.
3. 아래와 같이 콘솔 애플리케이션 (.NET Core)를 만들어야 하는데 아래와 같은 콘솔 애플리케이션이 안나오는 분이 있을 수 있음.
있다면 그대로 프로젝트 생성하면 됨.
3.1 없다면 아래와 같이 아래로 스크롤 한 후 "추가 도구 및 기능 설치" 를 통해 해결할 수 있다.
설치 끝났으면 프로젝트 생성할때
- 콘솔 애플리케이션(.NET Core) 선택
- 프로젝트 명, 위치 설정, 솔루션 이름 설정
- 대상 프레임워크 .NET 5.0
이렇게 해라.
4. 패키지 관리자 콘솔을 통해 SuperSocket 2.0.0-beta.10 을 설치한다.
패키지 관리자 콘솔을 못 열겠다면
여기에 "패키지 관리자 콘솔" 치고 열면 됨.
5. 이제 문서를 보고 코드를 작성해 보면 끝
잘 안되면 내꺼 복사혀
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Microsoft.Extensions.Hosting;
using Microsoft.Extensions.Logging;
using SuperSocket;
using SuperSocket.ProtoBase;
namespace ConsoleApp1
{
class Program
{
static async Task Main(string[] args)
{
var host = SuperSocketHostBuilder.Create<StringPackageInfo, CommandLinePipelineFilter>()
.ConfigureSuperSocket(options =>
{
options.Name = "Echo Server";
options.Listeners = new List<ListenOptions>
{
new ListenOptions
{
Ip = "Any",
Port = 4040
}
};
})
.UsePackageHandler(async (session, package) =>
{
var result = 0;
switch (package.Key.ToUpper())
{
case ("ADD"):
result = package.Parameters
.Select(p => int.Parse(p))
.Sum();
break;
case ("SUB"):
result = package.Parameters
.Select(p => int.Parse(p))
.Aggregate((x, y) => x - y);
break;
case ("MULT"):
result = package.Parameters
.Select(p => int.Parse(p))
.Aggregate((x, y) => x * y);
break;
}
await session.SendAsync(Encoding.UTF8.GetBytes(result.ToString() + "\r\n"));
})
.ConfigureLogging((hostCtx, loggingBuilder) =>
{
loggingBuilder.AddConsole();
})
.Build();
await host.RunAsync();
}
}
}
6. 이제 실행하면 이렇게 나옴.
7. 이제 Client 로 확인해보자!! telnet 으로
혹시 telnet 안되면 대충 이런거 보고 따라하자.
"ADD 2 4" 이런 식으로 작성하고 엔터해보자.
된다.
요까지.
2.0 버전 더미클라띄워봤었는데 500에 초당 10건도 못버티고 뻗어요 - dc App
1.6은 멀쩡한데 - dc App
내부를 Pipelines 로 구현했던데 일정 부하 넘어가면 Task가 너무 쌓여서 아예 먹통 - dc App
한국인분이 포팅하신 supersocket lite 있던데 그거라두 - dc App
결국 리눅스에서 쓰기 위해 .net core 지원버전 쓰려고.
마자 요고인데.
https://github.com/jacking75/SuperSocketLite?fbclid=IwAR3KoXbDLlMbBVPzHsetQE62RopwTrFEQo_O7FZlL1AcsfMRSv4Ccvz6Zcc
이것도
고려해야겠네.
2.0은 개발용으로 쓰다가 kerryjiang 이 고쳐주면 테스트 해보고 써야겠네.
정보 공유 감사요
솔직히 2.0으로 나도 개발하고싶었는데 처참하더라고.. - dc App
2.0은 언제 완성될려나 ㅋㅋ.. - dc App
beta 땔때는 제대로 고쳐주겠지. kerryjiang 믿는다.
1.6 코드는 쓰던거 있으니까 유사시 쓰던거 쓰면 되고, 3년안에 안되겠다 싶으면 jacking75님꺼 고려해보던가.