Commit Graph

87 Commits

Author SHA1 Message Date
Micooz
062c7e9823 transports/websocket: rename websocket.js to ws.js 2018-01-19 22:36:38 +08:00
Micooz
b801c73460 transports/tcp: add onDrain() 2018-01-18 18:03:50 +08:00
Micooz
95fc5cb208 src: extract several constants to constants.js 2018-01-18 18:00:56 +08:00
Micooz
8b69a06d7c transports/tcp: access outbound/inbound via getters when onReceive() 2018-01-15 20:30:07 +08:00
Micooz
30b9ef509e transports/def: add outbound and inbound getters 2018-01-15 20:30:07 +08:00
Micooz
c54e1fc360 core,transports: refactor inbound and outbound closing logic 2017-12-26 21:39:21 +08:00
Micooz Lee
80a6e69653
Add multiplexing support (#94)
* core,presets,transports: add initial mux support

* core,presets: holy shit

* core,transports: fix fix

* core: some fix to multiplexer

* still not working, too complex

* transports: add mux

* core: pass "extraArgs" as the second parameter during piping

* src: first working version of mux

* core,presets: properly close sub connection from client

* core/multiplexer: fix stuck at the second connection

* core/multiplexer: split class into MuxClient and MuxServer

* core/multiplexer: pick a random mux relay to transfer encoded data on server side

* core,transports: remove "mux" transport and make mux on TLS work

* presets/tracker: only dump result when preset destroyed

* lint: fix

* core: bring preparePresets() to module scope

* transports/tcp: fix inbound destroy behaviour for mux

* utils: fix getRandomInt()

* core/multiplexer: fix getRandomMuxRelay()

* core/multiplexer: distinguish relay self-close and protocol(mux)-close

* test: add test for "mux"

* transports/websocket: prevent calling "on()" on null this._socket

* presets: add class IPresetAddressing

* core: wrap mux protocol inside custom protocol stack

* core: pass remoteInfo to new Relay() to correct remote address in log

* core: fix bugs and improve stability

* src: add/remove TODOs

* core/relay: store remoteInfo rather than context

* core/relay: fix a bug

* docs: update
2017-12-25 16:42:01 +08:00
Micooz
e7e607547d
transports/websocket: make data receive throttle work 2017-12-18 14:52:02 +08:00
Micooz
766d767a49
transports/websocket: optimize data send 2017-12-14 15:10:25 +08:00
Micooz
4ec33d2c85
transport: add missing brackets 2017-12-14 14:58:22 +08:00
Micooz
acb2174097
transports: make websocket extends from tcp 2017-12-14 14:46:37 +08:00
Micooz
98a00424c2
transports/tcp: handle half-close correctly 2017-12-13 10:02:28 +08:00
Micooz
10b6644770 core,transports: fix udp relay when use auto-conf 2017-11-25 11:50:13 +08:00
Micooz
61a9aae948
transports: fix RangeError [ERR_SOCKET_BAD_PORT] for udp 2017-11-22 10:46:31 +08:00
Micooz
32012c51e0
transports: just refine websocket 2017-11-22 10:43:18 +08:00
Micooz
46c65d5a72 transports: fix unexpected pause when CONNECT_TO_REMOTE has "true" keepAlive 2017-11-11 16:25:19 +08:00
Micooz
123fe73768 core: update preset suite doesn't recreate pipe now 2017-11-09 21:02:24 +08:00
Micooz
e3eefc88f4
transports: wait until connection established 2017-11-09 11:04:51 +08:00
Micooz
6d378ae3fe transport: fix verbose log for udp transport 2017-10-28 15:34:02 +08:00
Micooz
c4f423f77c
bin,core: apply lru-cache to udp relays 2017-10-27 12:45:27 +08:00
Micooz
cc0278d243 src: compatible with shadowsocks udp addessing 2017-10-26 22:28:47 +08:00
Micooz
ea25df4cb1
transports: broadcast CONNECTION_CLOSED when udp packets fail to process 2017-10-26 16:46:19 +08:00
Micooz
bf37255bce
core,transports: add udp.js 2017-10-26 14:05:19 +08:00
Micooz
5aa1cfc755 src: refine api interfaces 2017-10-21 11:59:00 +08:00
Micooz
39521ae8f8
transports: pause inbound receiving before outbound connected to remote 2017-10-19 15:23:33 +08:00
Micooz
d7883321f3
src: rename constants
- MIDDLEWARE_DIRECTION_UPWARD -> PIPE_ENCODE
- MIDDLEWARE_DIRECTION_DOWNWARD -> PIPE_DECODE
2017-10-19 11:19:32 +08:00
Micooz
434983d01f
transport: throttle receiving data to reduce memory grow when using websocket 2017-10-19 11:05:45 +08:00
Micooz
6f12dcb2ba transport: fix a null pointer bug in tcp.js 2017-10-15 12:19:51 +08:00
Micooz
801dd69867 transports: log host and resolved ip separately 2017-10-14 22:51:43 +08:00
Micooz
42c7ea8ec2 core: refine hub, pass proxyRequest to relay 2017-10-14 22:45:47 +08:00
Micooz
d20443bfc7
transports: change "websocket" to "ws" 2017-10-13 15:43:25 +08:00
Micooz
30288a51f5
transport: destroy socket when "end" as well 2017-10-13 15:42:47 +08:00
Micooz
53c6681084
transports: check websocket writable before send 2017-10-09 12:56:43 +08:00
Micooz
373feea909
transports: sync return context when _connect() 2017-09-28 14:27:10 +08:00
Micooz
09dc24da9e
transports: extract tls relevant logic from tcp.js to tls.js 2017-09-27 10:50:57 +08:00
Micooz
1d676a04a1
transports: refine index.js 2017-09-26 11:09:39 +08:00
Micooz
3884f4d07c
core,transports: refactor tcp/tls relay, add websocket 2017-09-19 14:07:07 +08:00