Commit Graph

26 Commits

Author SHA1 Message Date
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