158 Commits

Author SHA1 Message Date
barryyt.cai.moxa
cb1b1b1673 fix: mutex deadlock when connection close 2025-12-09 11:51:38 +08:00
joy,zhou
c5b4c362a2 修复和优化日志字段的获取逻辑,确保在不同连接类型下正确获取远程地址。同时,调整注释格式以提高代码可读性。 2025-07-28 09:09:16 +08:00
wei_lilitw
7f2cbaaf20 fix(hmq):Set a higher debug level for logs to avoid printing too much log information and interfering with debugging 2024-05-27 11:03:48 +08:00
wei_lilitw
646f13199d fix(broker):fix unix sock file not be removed 2024-05-23 17:22:29 +08:00
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
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
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
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
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
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