- gofmt the x509.Certificate struct literal in generateTLSConfig - grpcSample() now checks and prints errors from http3.ServerRun and http3.ClientRun instead of silently discarding them (e.g. port conflicts previously failed with no output) Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
37 lines
873 B
Go
37 lines
873 B
Go
package main
|
|
|
|
import (
|
|
"fmt"
|
|
"grpccanary/lib/grpc/http3"
|
|
"time"
|
|
)
|
|
|
|
var port = ":8080"
|
|
|
|
func main() {
|
|
// 1단계: JSON 파싱 예제 실행
|
|
// jsonexample.JsonParsingExample()
|
|
|
|
// 3단계: gRPC 통신 예제 실행 (필요 시 주석 제거하여 활성화 가능)
|
|
grpcSample()
|
|
}
|
|
|
|
func grpcSample() {
|
|
fmt.Println("--- starting gRPC IoT Simulation ---")
|
|
|
|
// 1. gRPC 서버를 백그라운드 고루틴으로 구동
|
|
go func() {
|
|
if _, _, err := http3.ServerRun(port); err != nil {
|
|
fmt.Println("ServerRun error:", err)
|
|
}
|
|
}()
|
|
|
|
// 2. 서버 포트가 바인딩되어 통신 대기 상태에 들어갈 시간을 일시적으로 보장
|
|
time.Sleep(100 * time.Millisecond)
|
|
|
|
// 3. gRPC 클라이언트를 구동하여 원격 프로시저(RPC) 기동 시뮬레이션 집행
|
|
if err := http3.ClientRun(port); err != nil {
|
|
fmt.Println("ClientRun error:", err)
|
|
}
|
|
}
|