Commit Graph

51 Commits (93a5c72e5f069b42413ced0fdd4cc43b4884fd7b)

Author SHA1 Message Date
David Kebler 93a5c72e5f 0.5.1 refactor send method to streamline all cases into one. Can accept name or array of consumer names to send otherwise it's all.
do some vetting of the packet to be processed to avoid processing a bad packet
set ready and state log levels for pushed or sent ready packets for easier debugging
2020-03-24 14:22:58 -07:00
David Kebler 31747cc373 0.5.0 bumping in anticipation of 3-2020 deployment of light code
working fine, no bugs
cleaned code
refactored socketsInit and how it handles the ready object, delays 100ms to avoid pushing/send issue when socket is closed abruptly
refactored the observer names to add a suffix be more clear like <listening> for sockets  and <inbound> and <outbound> for consumers
add better examples  two consumers and socket example and duplex example
2020-03-15 16:06:27 -07:00
David Kebler b7a20230bb 0.1.51 2020-02-21 18:15:21 -08:00
David Kebler f4e0a8396a 0.1.50 2020-02-21 12:31:56 -08:00
David Kebler 55d93bf7d8 0.1.49 refactor push method now allows specification of sockets and consumers
has ready push for change and connect but they are buggy
2020-02-10 21:34:58 -08:00
David Kebler 709b3e0fbc 0.1.41 Fix bug in consumerConnected Method 2020-01-21 18:38:36 -08:00
David Kebler ddd7556c3f 0.1.40 clear console.logs 2020-01-18 22:29:49 -08:00
David Kebler 80286a2e4f 0.1.39
processing.js
  add ready command to consumer for pushes
  emitting entire packet
base.js
  added ready all subcriber that sends/push when ready
  adds ready packet to conPackets for all s socket types
  change observer names to include sufixes :socket, :consumer, :process,  :device
  add method to easily create an observer of connecting consumer(s)
2020-01-16 17:22:27 -08:00
David Kebler a6d928bf56 0.1.38
processing.js
  added default ready command for socket
  removed arrow functions from socket cmd functions must Always be regular functions for setting context
base.js
  better validation and defaults for options to registerSocket
  add by default a ready observer for when socket starts listening
2020-01-14 09:21:09 -08:00
David Kebler a47144606a 0.1.37
base:
  add ready observer class instance
  adds a ready observer for each consumer (only) registered
  refactored default namespace processing a bit
  refactored _packetProcess  the default/main processor
     now can register before,command, and after processors
     uses a single _process function to remove near reptition
     does a better job of maintaining/merging the packet from step to step
processing:
  change processor to cmdProcessor
  refactor default consumer processing
2020-01-06 23:39:58 -08:00
David Kebler 741823cce4 0.1.32 change buble up events to 'connection:socket' and 'connection:consumer' 2019-12-05 15:33:02 -08:00
David Kebler 2d552bc6c1 0.1.31
refactor init to socketsInit support old init
registerSocket now only registers a socket it does not initialize, addSocket now calls this for backwards compatibility
added active getter to all sockets/consumers so now ready getter returns complete active state of all sockets
socketsInit only attempts to init non active sockets so can be called multiple times
add some more helpers
getSocketsFilter, getConsumers, getSocketInit
push now supports push to specific sockets/servers instead of just all which is the default
2019-11-21 09:46:56 -08:00
David Kebler ec311b51df 0.1.30 add consumer connection bubble up listener for each socket
add mqtt s vs c option
2019-09-16 18:05:18 -07:00
David Kebler 23ea81c9d9 0.1.29 add default return command for socket/servers
add generic client and ack sockect server examples
2019-09-13 19:05:36 -07:00
David Kebler 61df3593b1 0.1.28 improve error handling of otherwise unhandled errors at processor call
bubble up 'pushed' events to base instance from underlying sockets
add error command to any packets returning packet.error to a consumer/client
2019-09-11 21:35:23 -07:00
David Kebler 10c4f4a146 0.1.27 add bubble up 'status' event on every socket
add in latest websocket client example
2019-09-08 20:14:40 -07:00
David Kebler 1b3d5fceb7 refactored socket initialization to better catch and emit errors and remove offending sockets
will now emit 'error', 'warn', 'fatal'  when needed so instance can track and track easier and take action (like notification)
sockets will bubble these up now.
2019-08-29 13:41:32 -07:00
David Kebler 3bf0110164 0.1.26
refactored amend methods
added transport validation
changed default name spaces to all start with _ to avoid accidential namespace issues
refactored examples to showcase all possibilities with a four in one (fio) example
refactored ha hooks
added matching websocket client
all works changes made by one socket are pushed to all sockets where they do their updates including home assistant
added a home assistant package file including lovelace yaml for matching HA interface.
2019-08-28 09:15:02 -07:00
David Kebler 21718d3998 0.1.25 Update all deps, add home assistant mqtt example 2019-08-15 13:39:35 -07:00
David Kebler f9503dcbf9 0.1.24 updated socket again 2019-05-02 06:38:12 -07:00
David Kebler e1859bd1e2 0.1.23 update socket 2019-05-02 06:37:56 -07:00
David Kebler c1d35f7c0f 0.1.22 bump because of change in uci-socket 2019-05-01 15:38:20 -07:00
David Kebler 903d907201 0.1.21 add info to ack package so one can see it's just the default ack
update socket deps for changes in error handling
2019-04-28 10:00:44 -07:00
David Kebler ea1342272e 0.1.20
changed default commands handling, removed _default namespace
changed s and c name spaces to use ._c, and _s as default name spaces
amend commands work with above ._c and ._s props
changed .socket to ._socket to avoid namespace issues with instances using .socket.  Instances should use the getSocket method!
copied host and port options to connect. for mqtt socket to make setting those more standard
cleaned up logging
Add hooking for before send, and before and after process
Improved/cleaned preempting default processing
2019-04-27 12:10:56 -07:00
David Kebler 6da51d453f 0.1.19 add ack to default socket commands, add socketsListen and consumersListen and private _eventListen methods 2019-04-26 11:00:56 -07:00
David Kebler 3ab37ae694 0.1.18 updated of uci socket 2019-03-24 11:50:08 -07:00
David Kebler 1359aa7d31 0.1.17 add removeSocket method, add final catch of all packet processing errors. 2019-03-17 13:55:29 -07:00
David Kebler 0a86774b17 0.1.16 update utility dependencies, improve the fio example so mqtt work correctly 2019-02-15 08:51:07 -08:00
David Kebler a5fa20b74a dependency updates 2019-02-15 08:51:06 -08:00
David Kebler 759949fb51 Refactored init method and added an "addSocket" method called from there.
This allows setting up sockets at construction or later at runtime via same call to addSocket.
2019-01-01 16:39:08 -08:00
David Kebler 20d2eb09cc fix adding root namespace to lookups 2018-05-28 14:18:20 -07:00
David Kebler 10077e207b began documentation in readme
by default removed root namespace checking must now set useRootNS to true to access command functions there.  This to avoid issuess like an 'on' function clashing with an emitter listerner.
2018-05-25 14:40:08 -07:00
David Kebler ea8253f4b0 added in mqtt as socket type
refactored with addSocket and initSocket for individual sockets
now can do runtime socket addition after init
2018-05-20 15:44:31 -07:00
David Kebler 04268d2b9c refactor for allowing dynamic addition of sockets
add websocket (listener) to socket transports
improved integration of mqtt transport with topic being translated to cmd and vice versa
2018-05-16 11:17:38 -07:00
David Kebler 78bcf3009a update to esm from @std/esm 2018-05-16 07:08:14 -07:00
David Kebler 5a0af4d75e add mqtt client as option to uci-base with uci-mqtt 2018-04-05 15:35:29 -07:00
David Kebler df9a879fef added logging 2018-03-02 08:35:25 -08:00
David Kebler 2e07dab28d add bindFuncs method for binding a whole module of functions to the base instance (this) or a given call site
update deps
2018-02-23 21:18:06 -08:00
David Kebler e6774301c2 flop send to have name first then packet 2018-02-13 22:31:02 -08:00
David Kebler d0173c045f With changes in socket module now send is async and returns the response from the socket.
send now transport send now process as many consumer sockets as have been created by pushing them onto array and the using promise.all and map to send out together.
Return for one than one is an array of responses.
getPacketByName was added to make it easy to grab just one of those in returned array.
2018-02-13 14:19:18 -08:00
David Kebler b938647efe improved namespace handling and added transport namespacing
added / delimiter to command/subcommand
2018-02-06 20:40:00 -08:00
David Kebler ddd81ea671 refactored processing and packet command function lookup based on priortized namespaces. Packets can now have subcommands by use using . or : which will look in sub keys for the command sub function 2018-02-05 22:05:38 -08:00
David Kebler e5059368a9 changed sockets options now can add as many as you want of either type and transport
improved socket packet processing call now binds this and name of socket that received packet for processing
single common processor for all packets incoming (either consumer or socket)
default processing splits into socket or consumer
default processing has calls looking for packet cmd functions before returning error packet
1. Added Namespace // TODO
2. A Pariticular Sockect
3. Root of instance
4. The socket type and transport //TODO
5. The socket type
there are helper functions for adding cmd functions to any of these save the root instance we you can add directly.
2018-02-04 14:18:21 -08:00
David Kebler 8c61ec854d refactored adding sockets so as many sockets of any type and transport can be added 2018-02-02 14:09:52 -08:00
David Kebler 51986fbcc7 fix registerpacketcontext
add generating and id when one not given
2018-02-02 09:19:27 -08:00
David Kebler 9679f61aae moved default processing to constructor
push creates and connects to array and use promise.all
cleanup amend and register functions
alter send function and add sendTCP and sendIPC
2018-01-30 21:12:38 -08:00
David Kebler 3c1340baf0 fixed separation of packet properties for each socket type when customizing
add amendPacket.. and changed registerPacket to accept single type changes

The four-in-one example now using amend and register sucessfully
2018-01-29 21:52:24 -08:00
David Kebler a83646c4f6 refactor base so it works with latest uci-socket
four-in-one example working
make Base instance (this) the default context for all socket packet commands
2018-01-28 22:37:54 -08:00
David Kebler 3015798068 Nearly functional uci base module
supports one each unix tcp sockets and clients in any combination with default and custom packet processing
2018-01-18 21:32:07 -08:00
David Kebler c3e94b465e initial commit 2017-12-21 15:50:05 -08:00