Commit Graph

58 Commits

Author SHA1 Message Date
Derrick Hammer 1ad6c1d692
refactor: bug fixes, added type asserts and use ? chaining where needed 2023-07-05 06:19:41 -04:00
Derrick Hammer eb65447adb
*convert data to buffer 2023-04-16 19:00:33 -04:00
Derrick Hammer ec937e786b
* Refactor socket preencoding and encoding to use socketEncoding when _server is defined. 2023-04-16 17:34:42 -04:00
Derrick Hammer 9cb6d0b6e4
* Fix typo in multiSocket.ts where "m" should be "m.id". 2023-04-16 17:17:31 -04:00
Derrick Hammer e3e6757e47
* Refactor multiSocket.ts to check for server mode before checking for allowedPorts inclusion when accepting a new socket connection. 2023-04-16 17:13:47 -04:00
Derrick Hammer e19e4c1744
* Add serializeError import to multiSocket.ts and implement preencode and encode functions using JSON serialization for error messages. 2023-04-16 14:29:07 -04:00
Derrick Hammer 339dbba08c
* Fix error in multiSocket.ts where 'this' was used instead of 'self' to refer to the current object. 2023-04-16 14:19:55 -04:00
Derrick Hammer 623601df27
* Fix decoding method to correctly parse JSON data in multiSocket.ts. 2023-04-16 14:15:21 -04:00
Derrick Hammer bc85076e7f
* Refactor peer.ts to use call both handle and on* callbacks for open and close
* emit "peerChannelOpen" event on new channel open.
2023-04-16 07:11:39 -04:00
Derrick Hammer 85ff38d871
* Add initialization of messages and empty implementation of handleChannelOnOpen in Peer class. 2023-04-16 07:10:21 -04:00
Derrick Hammer 39499397ea
* Remove the invocation of the _onclose callback function when the socket is closed. 2023-04-16 07:09:42 -04:00
Derrick Hammer 1882752839
* Add await keyword to multiSocket.ts to await for message to be added to the peer channel. 2023-04-16 07:09:09 -04:00
Derrick Hammer d30528caa0
* Add event emitter for when peer connection is established. 2023-04-16 06:08:31 -04:00
Derrick Hammer b04db8668b
*Put _nextPeer into the constructor 2023-04-16 05:48:32 -04:00
Derrick Hammer f842cd84c4
**createSocket does not need to be async 2023-04-16 05:38:36 -04:00
Derrick Hammer 96dd1ad46e
* as public key may be from the web client, need to use new _getPublicKey utility that uses maybeGetAsyncProperty 2023-04-16 05:23:36 -04:00
Derrick Hammer 1c9a430d5e
* Refactor handlePeer function to use async/await and emit "peer" event, and make Proxy class extend EventEmitter. 2023-04-16 03:41:50 -04:00
Derrick Hammer 13ff64002d
* Update references from peer.socket to peer.stream in multiSocket.ts. 2023-04-16 03:16:40 -04:00
Derrick Hammer 518bdca8ad
* Refactor Peer and MultiSocket classes to handle new peer channels more efficiently and cleanly. 2023-04-16 03:06:34 -04:00
Derrick Hammer 605f760fe3
*missing init 2023-04-16 00:47:45 -04:00
Derrick Hammer f11e3fed78
*implement handlePeer 2023-04-15 22:37:49 -04:00
Derrick Hammer 95d866c69e
*Remove _socketOptions overrides 2023-04-15 22:35:22 -04:00
Derrick Hammer 774e84996e
*further refactoring 2023-04-15 22:17:30 -04:00
Derrick Hammer 8ea1ad3006
*make _socketOptions protected 2023-04-15 19:45:16 -04:00
Derrick Hammer ddf6b2c9d8
*add getter for socketOptions 2023-04-15 19:44:01 -04:00
Derrick Hammer b2b041c3a1
*override callbacks 2023-04-15 19:34:45 -04:00
Derrick Hammer d63fa22d00
*make protected 2023-04-15 19:34:24 -04:00
Derrick Hammer c01d866d8b
*refactoring
*create basicproxy
*create multisocket proxy with dummy and tcp socket classes based off IPFS proxy code
2023-04-15 18:39:47 -04:00
Derrick Hammer 94342e6929
*async fetch remotePublicKey 2023-04-09 12:23:49 -04:00
Derrick Hammer 5c666d38c0
*Need to async fetch rawStream 2023-04-09 12:15:23 -04:00
Derrick Hammer 92245a6c1c
*As a kernel-based protomux may be used, need to await on createChannel and addMessage 2023-04-08 20:56:26 -04:00
Derrick Hammer c1d495a54b
*add createDefaultMessage option to disable the default socket pipe 2023-03-15 08:14:07 -04:00
Derrick Hammer 2e639eb92a
*Move socket creation outside channel onopen 2023-03-07 03:24:15 -05:00
Derrick Hammer 7bbfe577c3
*Add getter for socket 2023-03-05 03:00:04 -05:00
Derrick Hammer 6c6f6c4954
*Add onchannel to allow creating additional messages 2023-03-03 05:22:29 -05:00
Derrick Hammer b3a7c0b4e1
*Add getter for channel 2023-03-02 05:41:13 -05:00
Derrick Hammer ae2ee61bec
*Update types and add new bound versions 2023-03-02 05:37:01 -05:00
Derrick Hammer b9611cecd7
*Update OnOpen type 2023-03-02 05:30:51 -05:00
Derrick Hammer e5f4f59477
*Don't bind this, but inject ourselves as the first argument 2023-03-02 05:30:14 -05:00
Derrick Hammer 4220037402
*Store channel as a private property
*Bind all callbacks to the current peer
2023-03-02 05:25:50 -05:00
Derrick Hammer 08b4bbc893
*make alias types optional 2023-02-25 22:49:34 -05:00
Derrick Hammer 3b7be7e892
*alias close to end 2023-02-25 22:48:57 -05:00
Derrick Hammer 84f2f96e12
*Change WS aliases to be conditional
*Remove on/off aliases since streamx already provides it
2023-02-25 22:46:34 -05:00
Derrick Hammer 7980aa29c7
*Add websocket compatibility with readyState 2023-02-25 22:38:25 -05:00
Derrick Hammer 68cd8008a6
*add emulateWebsocket to proxy 2023-02-25 22:21:09 -05:00
Derrick Hammer bdacd01849
*add emulateWebsocket to peer 2023-02-25 22:16:40 -05:00
Derrick Hammer 4d75c11299
*event message must pass a MessageEvent 2023-02-25 22:12:05 -05:00
Derrick Hammer 68c12f22be
*Add option to emulate a websocket 2023-02-25 22:10:00 -05:00
Derrick Hammer 11550659d0
*alias write to send to be WS compatible 2023-02-25 22:06:37 -05:00
Derrick Hammer 39471ad9c2
*Create on/off event handler aliases 2023-02-25 12:06:51 -05:00