[TOC]
go get github.com/highras/fpnn-sdk-go/src/fpnn
go get -u github.com/highras/fpnn-sdk-go/src/fpnn
import "github.com/highras/fpnn-sdk-go/src/fpnn"
client := fpnn.NewTCPClient(endpoint string)
endpoint format: "hostname/ip" + ":" + "port"
.
e.g. "localhost:8000"
-
Basic configs
client.SetAutoReconnect(autoReconnect bool) client.SetConnectTimeOut(timeout time.Duration) client.SetQuestTimeOut(timeout time.Duration) client.SetLogger(logger fpnn.Logger)
-
Set Duplex Mode (Server Push)
client.SetQuestProcessor(questProcessor QuestProcessor)
-
Set client keepAlive
client.SetKeepAlive(keepAlive bool)
The default connection is not keepAlive
-
Set connection events' callbacks
client.SetOnConnectedCallback(onConnected func(connId uint64, endpoint string, connected bool)) client.SetOnClosedCallback(onClosed func(connId uint64, endpoint string))
-
Config encrypted connection
client.EnableEncryptor(pemKeyPath string) client.EnableEncryptor(pemKeyData []byte)
FPNN Go SDK using ECC/ECDH to exchange the secret key, and using AES-128 or AES-256 in CFB mode to encrypt the whole session in stream way.
answer, err := client.SendQuest(quest *Quest)
answer, err := client.SendQuest(quest *Quest, timeout time.Duration)
err := client.SendQuestWithCallback(quest *Quest, callback AnswerCallback)
err := client.SendQuestWithCallback(quest *Quest, callback AnswerCallback, timeout time.Duration)
err := client.SendQuestWithLambda(quest *Quest, callback func(answer *Answer, errorCode int))
err := client.SendQuestWithLambda(quest *Quest, callback func(answer *Answer, errorCode int), timeout time.Duration)
client.Close()
fmt.Println("FPNN Go SDK Version:", fpnn.SDKVersion)
Please refer: API docs
-
/src
Codes of SDK.
-
/example
Examples codes for using this SDK.
Testing server is /core/test/serverTest. Refer: Cpp codes of serverTest -
/test
-
/test/asyncStressClient.go
Stress & Concurrent testing codes for SDK.
Testing server is /core/test/serverTest. Refer: Cpp codes of serverTest -
/test/singleClientConcurrentTest.go
Stability testing codes for SDK.
Testing server is /core/test/serverTest. Refer: Cpp codes of serverTest
-