382bead548
rpc: fix client websocket timeout ( #687 )
2017-09-29 13:32:30 +04:00
f9479b34cb
sleep time should be greater than readTimeout (5 sec)
...
otherwise, we're not testing ping/pongs.
see https://github.com/tendermint/tendermint/pull/687#issuecomment-332494735
2017-09-27 15:44:19 +04:00
ddb3d8945d
p2p: allow listener with no external connection
2017-09-22 10:13:23 -04:00
f8b152972f
return method not found error
...
if somebody tries to access WS method in non-ws context
2017-09-18 16:36:03 -04:00
95875c55fc
ID must be present in both request and response
...
from the spec:
This member is REQUIRED.
It MUST be the same as the value of the id member in the Request Object.
If there was an error in detecting the id in the Request object (e.g. Parse error/Invalid Request), it MUST be Null.
2017-09-18 16:36:03 -04:00
7fadde0b37
check for request ID after receiving it
2017-09-18 16:36:03 -04:00
e36c79f713
capitalize RpcError
2017-09-18 16:36:03 -04:00
b700ed8e31
remove check for non-empty message as it should always be present
2017-09-18 16:36:03 -04:00
f74de4cb86
include optional data field in error object
...
```
data
A Primitive or Structured value that contains additional information about the error.
This may be omitted.
The value of this member is defined by the Server (e.g. detailed error information, nested errors etc.).
```
2017-09-18 16:36:02 -04:00
6c1572c9b8
fix invalid memory address or nil pointer dereference
2017-09-18 16:36:02 -04:00
60a1f49a5c
updated json response to match spec by @davebryson
2017-09-18 16:35:50 -04:00
9dde1a0bd4
rpc: comments
2017-08-25 17:57:09 -04:00
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
2017-08-10 17:53:49 -04:00
236489aecf
backlog must always have higher priority
2017-08-08 19:03:48 -04:00
797acbe911
ws: small comment
2017-08-08 17:33:17 -04:00
9b5f21a650
[ws-server] reset readTimeout when we receive something
2017-08-08 16:03:04 -04:00
8267920749
[ws-client] write normal close message
2017-08-08 16:02:37 -04:00
6c85e4be4f
change server ping period to be less frequent
...
no need to ping ws every 10 sec
2017-08-08 13:21:59 -04:00
23a87304cc
add a comment for PingPongLatencyTimer [ci skip]
2017-08-08 13:20:58 -04:00
c14b39da5f
make RPC server's ping period and pong wait configurable via options
2017-08-07 18:29:55 -04:00
57eee2466b
make WSClient thread-safe
2017-08-07 17:56:38 -04:00
5d66d1c28c
fixes from review
2017-08-05 13:11:00 -04:00
0013053fae
allow to change pong wait and ping period
2017-08-04 10:42:55 -04:00
1abbb11b44
do not exit from reconnectRoutine!
2017-08-03 22:44:18 -04:00
54903adeff
add IsReconnecting and IsActive methods
2017-08-03 19:10:15 -04:00
c08618f7e9
expose latency timer on WSClient
2017-08-03 19:10:14 -04:00
d578f7f81e
biff up WS client
...
What's new:
- auto reconnect
- ping/pong
- colored tests
2017-08-03 19:10:14 -04:00
0d1fa8e884
fixes from review
2017-06-28 11:12:45 -04:00
e2ed15fa02
rpc: SetWriteDeadline for ws ping. fixes #553
2017-06-26 17:13:39 -04:00
b6031d5f4b
rpc/lib: set logger on ws conn
2017-06-24 21:55:31 -04:00
5c29d7aba9
rpc/lib: test tcp and unix
2017-06-24 21:27:19 -04:00
aac85a14f0
httpDialer accepts no prefix or http:// as tcp://
2017-06-22 20:56:57 +02:00
b4ece65726
standardize key for errors (should be "err")
2017-06-14 12:50:49 +04:00
2b324b7eb9
RPC returns pretty formated json
2017-05-14 19:06:34 +02:00
f8fdbe3dbc
changes as per Bucky's review
2017-05-13 16:22:51 +02:00
f803544195
new logging
2017-05-13 10:24:58 +02:00
75989342b0
fixes from rebase
2017-05-04 23:03:42 -04:00
9860c8fee1
rpc: cleanup some comments [ci skip]
2017-05-03 14:33:07 -04:00
4a1b714ca4
All tests pass without go-wire json ptr madness
2017-05-03 16:45:00 +02:00
4c1d41c12e
Test json rpc parsing
2017-05-03 16:26:18 +02:00
6ba799132c
json.RawMessage in RPCRequest to defer parsing
2017-05-03 16:13:58 +02:00
6dbcfb32d2
comment on copied wire file
2017-04-28 23:22:54 -04:00
efeadcc0f4
some cleanup from review
2017-04-28 23:18:38 -04:00
884060eb9b
rpc/lib: no Result wrapper
2017-04-28 22:04:14 -04:00
07e59e63f9
TMEventDataInner
2017-04-28 17:57:06 -04:00
ac28b12fa8
add readReflectJSON from wire
2017-04-28 17:56:44 -04:00
257f45b768
ebuchman: added some demos on how to parse unknown types
2017-04-28 22:01:46 +02:00
acfbea6d49
rpc: decode args without wire
2017-04-28 14:36:38 -04:00
6c60c07f16
BROKEN: attempt to replace go-wire.JSON with json.Unmarshall in rpc
2017-04-28 16:24:06 +02:00
194f345470
Use non-standard port so tests don't die when I am running basecoin
2017-04-28 14:45:34 +02:00