Commit Graph

29 Commits

Author SHA1 Message Date
Jianhui Zhao
19604debb4 use github.com/zhaojh329/rtty-go/proto
Signed-off-by: Jianhui Zhao <zhaojh329@gmail.com>
2025-08-09 13:54:32 +08:00
Jianhui Zhao
21db9f8528 use SPDX-License-Identifier
Signed-off-by: Jianhui Zhao <zhaojh329@gmail.com>
2025-08-08 19:56:51 +08:00
Jianhui Zhao
880ac06a93 Improves code organization and readability
- Encapsulate API routes into APIServer methods (api.go)
- Split large handleUserConnection into smaller methods (user.go)

Signed-off-by: Jianhui Zhao <zhaojh329@gmail.com>
2025-07-31 00:21:17 +08:00
Jianhui Zhao
5dbb4bf951 Update module name to 'github.com/zhaojh329/rttys/v5'
This is in line with the Go language module specifications.

Signed-off-by: Jianhui Zhao <zhaojh329@gmail.com>
2025-07-29 14:55:29 +08:00
Jianhui Zhao
f8e63ad01a ui: redesign error page for better user experience
Signed-off-by: Jianhui Zhao <zhaojh329@gmail.com>
2025-07-16 17:06:41 +08:00
Jianhui Zhao
50bfe1a1e2 improve login timeout handling with proper race condition protection
- Extract login waiting logic into separate waitForLogin function for better code organization
- Fix race condition between timeout and device response by using LoadAndDelete atomically
- Continue waiting for device response if timeout occurs but device has already responded

This refactoring ensures robust handling of the login process even when timeout and
device response

Signed-off-by: Jianhui Zhao <zhaojh329@gmail.com>
2025-07-16 17:05:56 +08:00
Jianhui Zhao
3842518da9 optimize the terminal login process via websocket close messages.
Signed-off-by: Jianhui Zhao <zhaojh329@gmail.com>
2025-07-16 17:04:49 +08:00
Jianhui Zhao
a0bfc21d11 Refactor the message distribution process
To solve a major problem: when there are many devices connected,
the broker will blocked in processing messages.

By the way, I've rewritten and reorganized the entire code architecture,
improved performance.

Some new features has been added:
* support device grouping.
* support show device's IP address.

Change-Id: I250e18091be7fd42028c82767b6edef50b3f6d8f
Signed-off-by: Jianhui Zhao <zhaojh329@gmail.com>
2025-07-07 12:21:36 +08:00
Jianhui Zhao
68cfedf733 perf: improve sending PingMessage for web user
Signed-off-by: Jianhui Zhao <zhaojh329@gmail.com>
2025-06-17 09:17:15 +08:00
Jianhui Zhao
c7592da63f fix: Ensure the client is only close once
Signed-off-by: Jianhui Zhao <zhaojh329@gmail.com>
2025-06-16 15:35:46 +08:00
Jianhui Zhao
9dfc856b74 fix: Fix potential panic issue
```
2025-04-24T06:59:56Z |INFO| New session: 81ee1ed4d12c3048620fbb2168c08257
2025-04-24T07:00:10Z |INFO| Delete session: 81ee1ed4d12c3048620fbb2168c08257
2025-04-24T07:00:17Z |INFO| New session: 427ce01b7f47a7ee8192cefdfa291c8f
2025-04-24T07:00:57Z |INFO| Delete session: 427ce01b7f47a7ee8192cefdfa291c8f
2025-04-24T07:01:55Z |INFO| New session: ffbfd5c596195c2bd43b8c0b6dc3d135
2025-04-24T07:01:57Z |ERRO| websocket: close sent
panic: send on closed channel

goroutine 33 [running]:
main.(*user).WriteMsg(0xc00037e680, 0x2, {0xc000188d10, 0xc, 0xc})
        /home/runner/work/rttys/rttys/user.go:52 +0x8b
main.(*broker).run(0xc00035a000)
        /home/runner/work/rttys/rttys/broker.go:227 +0xf34
created by main.runRttys in goroutine 1
        /home/runner/work/rttys/rttys/main.go:86 +0x595
```

Signed-off-by: Jianhui Zhao <zhaojh329@gmail.com>
2025-04-25 16:03:56 +08:00
Jianhui Zhao
7dd174d096 fix: Fix panic: send on closed channel
```
device                           broker
------------------------------------------------------
dev.br.register <- dev

dev.br.unregister <- dev
                                 handle unregister
                                       c.Close()

                                 handle register
                                       c.WriteMsg(msgTypeRegister, append([]byte{err}, msg...))
                                            dev.send <- append(b, data...)

```

Signed-off-by: Jianhui Zhao <zhaojh329@gmail.com>
2024-11-23 20:14:15 +08:00
Jianhui Zhao
d4b8ad7ea5 fix: panic: send on closed channel
Signed-off-by: Jianhui Zhao <zhaojh329@gmail.com>
2022-05-12 21:45:44 +08:00
Jianhui Zhao
de28788e42 fix: panic: send on closed channel
Signed-off-by: Jianhui Zhao <zhaojh329@gmail.com>
2021-09-22 05:47:30 +00:00
Jianhui Zhao
342bd9d37e chore: improve code
Signed-off-by: Jianhui Zhao <zhaojh329@gmail.com>
2021-09-20 00:00:09 +08:00
Jianhui Zhao
9141dd3ab3 perf: Write file data to local while transferring
Before, the download was started after all file data were sent from the device to the browser.
Now, the download starts when the file data begins to transfer.

Signed-off-by: Jianhui Zhao <zhaojh329@gmail.com>
2021-09-19 03:27:32 +08:00
Jianhui Zhao
d00831af35 perf: improve code
Signed-off-by: Jianhui Zhao <zhaojh329@gmail.com>
2021-09-16 16:56:09 +08:00
Jianhui Zhao
fa2cbd14b1 refactor: change the login process to improve stability
Signed-off-by: Jianhui Zhao <zhaojh329@gmail.com>
2021-09-15 06:46:54 +00:00
Jianhui Zhao
54359e99e0 chore: improve code style
Signed-off-by: Jianhui Zhao <zhaojh329@gmail.com>
2021-09-09 14:47:22 +00:00
Jianhui Zhao
c857cc305b chore: rename go module to rttys
Signed-off-by: Jianhui Zhao <zhaojh329@gmail.com>
2021-09-08 10:33:47 +00:00
Jianhui Zhao
1db48db9e5 fix: #67
Signed-off-by: Jianhui Zhao <zhaojh329@gmail.com>
2021-02-02 19:30:28 +08:00
Jianhui Zhao
079690e189 fix websocket disconnecting after one minute of inactivity
Signed-off-by: Jianhui Zhao <zhaojh329@gmail.com>
2021-02-01 13:39:34 +08:00
Jianhui Zhao
31d7e0920a refactor
Signed-off-by: Jianhui Zhao <zhaojh329@gmail.com>
2021-01-26 22:50:39 +08:00
Jianhui Zhao
980ff5bfcd fix code style for golint
Signed-off-by: Jianhui Zhao <zhaojh329@gmail.com>
2021-01-05 21:20:38 +08:00
Jianhui Zhao
22a1a26b1f Optimize code and api
Signed-off-by: Jianhui Zhao <zhaojh329@gmail.com>
2020-03-15 20:13:35 +08:00
Jianhui Zhao
71a1d5bd2c Use zerolog
Signed-off-by: Jianhui Zhao <zhaojh329@gmail.com>
2020-02-12 11:39:45 +08:00
Jianhui Zhao
0846fceb99 Do not use websocket for device
Signed-off-by: Jianhui Zhao <zhaojh329@gmail.com>
2020-01-30 22:14:34 +08:00
Jianhui Zhao
8a3fa3f82b Change the license from LGPL2 to MIT 2019-05-07 11:20:25 +08:00
Jianhui Zhao
f26078c121 Code refactoring
Signed-off-by: Jianhui Zhao <jianhuizhao329@gmail.com>
2019-01-20 13:55:16 +08:00