package
1.0.1
Repository: https://github.com/cocokelam/tcpx.git
Documentation: pkg.go.dev

# Packages

No description provided by the author
No description provided by the author

# README

all-language-clients provide realizations of building tcpx's expected binary stream.

All clients pack interface.

golang

golang pack has been realized, it can be referred.

https://github.com/CocoKelam/tcpx/blob/master/packx.go

type Packx interface{
    Pack(messageID int32, src interface{}, header map[string]interface{}) ([]byte,error)
    UnPack([]byte, dest interface{}) (Message,error)
}
// example
func main() {
    type User struct{
        Username string `json:"username"`
    }
    // request payload
    var payload = User{"tcpx"}
    // packx
    packx := tcpx.NewPackx(tcpx.JsonMarshaller)
    // pack
    buf,_ :=packx.Pack(1, payload)
    // response payload
    var payload2 User
    packx.UnPack(buf, &payload2)
    // print {Username: "tcpx"}
    fmt.Println(payload2)
}

python

https://github.com/CocoKelam/tcpx/blob/master/all-language-clients/python/protocol.py

    # payload
    payload = 'hello'

    # message
    message = TCPXMessage()
    message.id = 5
    message.header = {
        'header': '/tcpx/client1'
    }
    message.body = payload

    # tcpx instance
    tcpx_protocol = TCPXProtocol('json')

    # tcpx pack
    packed_data = tcpx_protocol.pack(message)
    
    # tcpx unpack
    message2 = TCPXMessage()
    payload2 = ''
    message2 = tcpx_protocol.unpack(packed_data, payload2)
    
    # print
    print(message2)
    print(payload2)

Validating server are provided too.

Validating http program

POST http://localhost:7000/tcpx/clients/stream/
application/json

payload:

<xml>
  <username>tcpx</username>
</xml>

After Pack:: "AAAANAAAAAEAAAAEAAAAJG51bGw8eG1sPjx1c2VybmFtZT50Y3B4PC91c2VybmFtZT48L3htbD4="

request

{
     "stream": "AAAANAAAAAEAAAAEAAAAJG51bGw8eG1sPjx1c2VybmFtZT50Y3B4PC91c2VybmFtZT48L3htbD4=",
     "marshal_name": "xml"
}
response
```json
{
    "message":"success",
    "ms":{"message_id":1,"header":null,"body":{"XMLName":{"Space":"","Local":"xml"},"Username":"tcpx"}},
    "result":"ok"
}

1. Run validating program

cd all-language-clients

go run main.go

2. Run clients

Before run clients, validating program should run first.

2.1 go

cd all-language-clients/go

go run main.go