Anton Kaliaev
2fd8496bc1
correct handling of pings and pongs
server:
- always has read & write timeouts
- ping handler never blocks the reader (see A)
- sends regular pings to check up on a client
A:
at some point server write buffer can become full, so in order not to
block reads from a client (see
https://github.com/gorilla/websocket/issues/97 ), server may skip some
pongs. As a result, client may disconnect. But you either have to do
that or block the reader. There is no third way.
client:
- optional read & write timeouts
- optional ping/pong to measure latency
7 years ago
Anton Kaliaev
c14b39da5f
make RPC server's ping period and pong wait configurable via options
7 years ago
Anton Kaliaev
c08618f7e9
expose latency timer on WSClient
8 years ago
Anton Kaliaev
d578f7f81e
biff up WS client
What's new:
- auto reconnect
- ping/pong
- colored tests
8 years ago
Ethan Buchman
5c29d7aba9
rpc/lib: test tcp and unix
8 years ago
Anton Kaliaev
f803544195
new logging
8 years ago
Ethan Frey
6ba799132c
json.RawMessage in RPCRequest to defer parsing
8 years ago
Ethan Buchman
884060eb9b
rpc/lib: no Result wrapper
8 years ago
Ethan Buchman
07e59e63f9
TMEventDataInner
8 years ago
Ethan Buchman
acfbea6d49
rpc: decode args without wire
8 years ago
Ethan Frey
6c60c07f16
BROKEN: attempt to replace go-wire.JSON with json.Unmarshall in rpc
8 years ago
Ethan Frey
194f345470
Use non-standard port so tests don't die when I am running basecoin
8 years ago
Ethan Buchman
cc6dde96c1
rpc -> rpc/lib and rpc/tendermint -> rpc
8 years ago
Ethan Buchman
3cdd2daf08
fix tests
8 years ago
Ethan Buchman
9e82d132ce
go-rpc -> tendermint/rpc
8 years ago
Ethan Buchman
c55d83281a
move into rpc package
8 years ago
Anton Kaliaev
d6fd0c4ca0
fix backward compatibility for WS
8 years ago
Ethan Buchman
4b30cb3083
test: check err on cmd.Wait
8 years ago
Anton Kaliaev
5d19a008ce
add Call method to WSClient, which does proper encoding of params
8 years ago
Anton Kaliaev
3233c9c003
WSClient failed to "echo_bytes"
Error:
```
Expected nil, but got: encoding/hex: invalid byte: U+0078 'x'
```
8 years ago
Anton Kaliaev
c88257b038
rename rpc function status to echo
echo means we're returning the input, which is exactly what this
function does.
8 years ago
Anton Kaliaev
0874c72819
refactor tests
8 years ago
Anton Kaliaev
d66ebbd904
use testify package
8 years ago
Anton Kaliaev
e6c083f589
rename ClientURI -> URIClient, ClientJSONRPC -> JSONRPCClient (Refs #4 )
8 years ago
Anton Kaliaev
ff90224ba8
fix "Expected map but got type string" error
Error from tendermint:
```
panic: Expected map but got type string [recovered]
panic: Expected map but got type string
goroutine 82 [running]:
testing.tRunner.func1(0xc420464000)
/usr/local/go/src/testing/testing.go:622 +0x29d
panic(0xa1fda0, 0xc4201eecd0)
/usr/local/go/src/runtime/panic.go:489 +0x2cf
github.com/tendermint/tendermint/rpc/test.waitForEvent(0xc420464000, 0xc420064000, 0xae6fae, 0x8, 0xae6f01, 0xc2e998, 0xc2e9a0)
/home/vagrant/go/src/github.com/tendermint/tendermint/rpc/test/helpers.go:179 +0x53a
github.com/tendermint/tendermint/rpc/test.TestWSNewBlock(0xc420464000)
/home/vagrant/go/src/github.com/tendermint/tendermint/rpc/test/client_test.go:190 +0x12e
testing.tRunner(0xc420464000, 0xc2e9a8)
/usr/local/go/src/testing/testing.go:657 +0x96
created by testing.(*T).Run
/usr/local/go/src/testing/testing.go:697 +0x2ca
```
8 years ago
Anton Kaliaev
720b74d89e
read from ErrorsCh also
8 years ago
Anton Kaliaev
05e1a22d5b
encode params before sending in JSONRPC
8 years ago
Anton Kaliaev
c128957723
"must remove file for test to run again" - no way I am doing this by hands, too lazy :)
8 years ago
Anton Kaliaev
66867bf949
remove "rpc" prefix from package imports
8 years ago
Anton Kaliaev
e1d5873bdf
support key-value params in JSONRPC (Refs #1 )
More changes:
- remove Client interface (reason: empty)
- introduce HTTPClient interface, which can be used for both ClientURI
and ClientJSONRPC clients (so our users don't have to create their own) (Refs #8 )
- rename integration tests script to `integration_test.sh`
- do not update deps on `get_deps`
8 years ago
Matt Bell
34a806578a
Handle hex strings and quoted strings in HTTP params
Use 0x-prefixed hex strings in client
server: Decode hex string args
Encode all string args as 0x<hex> without trying to encode as JSON
Added tests for special string arguments
Fix server handling quoted string args
Added string arg handling test cases to bash test script
8 years ago
Ethan Buchman
479510be0e
support full urls (with eg tcp:// prefix)
9 years ago
Ethan Buchman
7ea86f6506
fix test race and update readme
9 years ago
Ethan Buchman
1410693eae
support unix domain websockets
9 years ago
Ethan Buchman
6607232a5d
add support for unix sockets
9 years ago