wei_lilitw
67594b07ef
fix(broker):fix unix sock file not be removed
2024-05-23 17:21:21 +08:00
wei_lilitw
9063c6069c
feat(broker):Added pipe socket conditions for different systems
2024-04-19 15:24:14 +08:00
wei_lilitw
d50464571e
feat(hmq):add windows pipe socket.Use the open source project npipe, which nicely encapsulates the operations of windows pipe and returns the connection type net.Conn.
2024-04-18 17:31:35 +08:00
Lijin and wei_lilitw
8ddca9bdc3
feat(hmq):Provide handler StartUnixSocketClientListening used to handle the Unix communications ( #198 )
...
Co-authored-by: wei_lilitw <wei_lilitw@topsec.com.cn >
2024-04-15 19:03:24 +08:00
zhouyy
48b146d64e
feat: update
2024-01-08 18:05:40 +08:00
Scott Joseph Spitler II
cdff42698a
Removed un-needed log line
2023-12-11 23:04:24 -05:00
Scott Joseph Spitler II
9fc57423db
Fixed pubMsg when WillTopic is null
...
Previously the broker would run and compile, but would throw a runtime panic if the will was null because of GoLang's inline struct operator. Should REALLY consider adding a unit test
2023-12-11 22:53:41 -05:00
chowyu12
e3fa6573f6
Merge pull request #176 from spit4520/master
...
Added in GET /connections to update restarting node
2023-12-11 15:45:23 +08:00
Scott Joseph Spitler II
4f98faeefc
Added in detailed conn client logs
...
Created new data types to store the last time a message was received from a device along with publishing the last will topic, keepalive time, and credentials over the /connections topic. These were mirrored also over the REST API for synchronous stateful services starting up from a crashed k8s pod or other usecases. Start by subscribing to /connections/+ and then GET /api/v1/connections to get the open connections, if a device connects while you are setting up your state, your messageHandler will handle the setup since it has the same information. This information has been published over for devices you don't have any control over and for relay purposes. You can take all of the device information and now create a faux client emulating your downstream device, this may sound strange; but I have a usecase for it, a lot of cheap chinese IoT's were not designed for mass production and we have to fix their messages in the cloud before relaying them to our other legacy servers
2023-12-11 02:30:31 -05:00
Husy
a94159e79c
fix typo for error message ( #191 )
2023-11-05 19:15:35 -06:00
Husy and husyhu
e9f340c38f
fix conn.Close() in function handleConnection ( #180 )
...
Co-authored-by: husyhu <husyhu@qq.com >
2023-03-29 09:45:12 +08:00
Scott Joseph Spitler II
3aea177ea8
Added in GET /connections to update restarting node
...
During a temporary service re-hydration, this allows the recovering service to:
1.) Sub to /connections for all incoming connections
then
2.) Get a list of all connections that exist rn.
This is useful for rebuilding caches and if any of your edge-workers need to be restarted, they can. It also allows for you not to have a 100% coupling in Redis or any other MQ stream. There are still no routes for the MQ streams to get all conns on connect, when we migrate to this we will add in this support as well
2022-09-23 16:57:26 -04:00
chowyu12
b2e79c3bea
feat: update lib and replace json
2022-06-18 21:49:55 +08:00
ZhangJian He
5dc2114daf
allow bridge mq cost msg ( #162 )
2022-05-20 21:27:48 +08:00
Lucas Vieira
0e3226ece1
Separates CI pipelines ( #166 )
...
* refactor: ♻️ fixes typo
* ci: 💚 separates continuous integration pipelines
Signed-off-by: Lucas Vieira <lucas.engen.cc@gmail.com >
* docs: 📚 adds CI badges
2022-05-20 21:26:33 +08:00
Lucas Vieira
061b485a3a
fix: 🐛 fixes nil pointer dereference ( #163 )
...
checks connection type before accessing values #161
Signed-off-by: Lucas Vieira <lucas.engen.cc@gmail.com >
2022-04-26 10:40:45 +08:00
ZhangJian He
7787d3ca0d
fix a misleading annotation ( #160 )
2022-04-25 20:38:03 +08:00
muXxer
c53d8f8a0d
Fix nil pointer exception in addr logs ( #157 )
2022-04-09 12:53:43 +08:00
ZhangJian He
a85e9904c2
Add addr in broekr log ( #146 )
2022-04-04 20:41:33 +08:00
ZhangJian He
a501565bab
Allow publish message by clientId ( #147 )
2022-04-04 20:41:04 +08:00
Lucas Vieira
f8a44be413
fix: 🐛 fixes critical race condition #152 ( #154 )
...
* fix: 🐛 fixes critical race condition #152
Signed-off-by: Lucas Vieira <lucas.engen.cc@gmail.com >
* fix: fixes race condition
2022-04-04 20:33:11 +08:00
Lucas Vieira
31864cdf2b
fix: 🐛 fixes race condition ( #155 )
...
- this race condition occurs when a client is disconnected or when hmq checks
if client still alive
Signed-off-by: Lucas Vieira <lucas.engen.cc@gmail.com >
2022-04-04 20:32:38 +08:00
ZhangJian He
94ff8e8405
Update Support Go version ( #143 )
2022-01-30 09:14:29 +08:00
chowyu12 and zhouyy
bf2b91c535
update: go.mod and go version ( #142 )
...
Co-authored-by: zhouyy <zhouyy@ickey.cn >
2022-01-19 11:16:24 +08:00
ZhangJian He
108e934a85
[cleanup] delete comment out code ( #137 )
2022-01-10 10:59:39 +08:00
ZhangJian He
46b64e5b84
Close conn when read connect packet error ( #136 )
2022-01-10 10:59:15 +08:00
ZhangJian He
ab117be4a8
Allow Broker DisConnect connections by ClientId ( #135 )
...
* Allow Broker DisConnect connections by ClientId
* Allow Broker DisConnect connections by ClientId
2022-01-05 11:15:45 +08:00
ZhangJian He
878e7fce3f
Rmoeve unnecessary type convert ( #134 )
2022-01-05 11:15:26 +08:00
muXxer and Luca Moser
1d6979189a
use locks around client maps ( #126 )
...
Co-authored-by: Luca Moser <moser.luca@gmail.com >
2021-08-10 10:46:38 +08:00
TrickIt
068d5e893c
fix: close the connection after send connection refused connack packet. ( #121 )
2021-06-30 14:13:43 +08:00
TrickIt
f66abe5fcb
fix: if packet is disconnect from client, then need to break the read packet loop before next loop start, and clear will msg. ( #120 )
2021-05-31 15:26:26 +08:00
Luca Moser
ccbe364f9f
check whether subscription or topics manager are nil before using them in client Close() ( #113 )
2021-03-18 10:02:49 +08:00
Lucas Vieira
7cc3949bbe
Packet fields validation ( #111 )
...
* chore: ignore .pre-commit-config.yaml
Signed-off-by: Lucas Vieira <lucas.engen.cc@gmail.com >
* fix: 🐛 perform validation on control packet fields (fhmq/hmq#104 )
Signed-off-by: Lucas Vieira <lucas.engen@outlook.com >
* feat: ❇️ add handling of null UTF-8 encoded character
Signed-off-by: Lucas Vieira <lucas.engen@outlook.com >
2021-02-26 15:44:01 +08:00
Luca Moser
7bf5d52fd9
use defer to unlock in WriterPacket() ( #107 )
2021-02-07 14:50:31 +08:00
turtletramp
ad7f4bc3f0
bug-2 adding RWMutex to inflight map and update the map access to use the mutex ( #108 )
2021-01-18 14:45:38 +08:00
Michael Stapelberg
524a9af060
retry listening indefinitely ( #105 )
...
When starting hmq immediately after booting, the IP address specified in the
--host flag (e.g. --host=10.0.0.217) might not be configured yet.
Without this commit, hmq would try to listen, give up, and then just hang.
With this commit, hmq automatically recovers.
2021-01-11 10:21:02 +08:00
joy.zhou
8f187157f3
Revert "op: low performance code ( #102 )" ( #103 )
...
This reverts commit c2248bed2b .
2021-01-07 16:24:09 +08:00
蹬
c2248bed2b
op: low performance code ( #102 )
...
thanks
2021-01-07 14:12:28 +08:00
sngyai
6cb307d252
Feature qos1&qos2 ( #99 )
...
* client publish qos2
* server dispatch qos1&qos2
* Use at most one timer for each client
* Use at most one timer for each client
2020-11-30 11:34:03 +08:00
joy,zhou
b8bacb4c3d
fixed bug #96
2020-08-26 17:24:22 +08:00
chujiangke
481a61c520
fix ( #90 )
2020-06-24 15:14:25 +08:00
Rajiv Shah
4782f76048
Replace satori/go.uuid with google/uuid ( #89 )
2020-06-09 10:13:37 +08:00
Aleksey Myasnikov
1a374f9734
Update comm.go ( #85 )
2020-05-08 11:26:44 +08:00
janson and janson
3f60d23e85
fix fail in cluster deploy ( #86 )
...
Co-authored-by: janson <janson@gmail.com >
2020-05-08 11:26:26 +08:00
yu
3cf90d5231
add websocket client ip
2020-04-16 14:08:51 +08:00
gerdstolpmann
a1bf3d93b2
only set a read deadline when the keep-alive value is positive ( #83 )
2020-04-16 10:33:17 +08:00
gerdstolpmann
af7db83bdc
do not try to set remoteIP for websocket connections ( #81 )
2020-04-04 10:41:36 +08:00
gerdstolpmann
839041e912
do not expect "Origin" header for websocket connections ( #80 )
...
* websocket: do not check the presence of the "Origin" header
* avoid using http.DefaultServeMux
2020-04-04 10:40:12 +08:00
gerdstolpmann
17dac26996
if used as library, allow that the auth and bridge plugins can be set by ( #79 )
...
struct, and not only by name
2020-04-03 14:49:50 +08:00
winglq
1971b5c324
update retained message even if it's already there ( #70 )
...
Signed-off-by: Liu Qing <winglq@gmail.com >
2020-01-06 11:22:59 +08:00