Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | ws.go: Stub for commands "Y" and "N", currently only counting arguments | Runxi Yu | 2024-09-29 | 1 | -0/+14 |
| | |||||
* | ws.go: chanPoolLock should be locked during setupChanPool | Runxi Yu | 2024-09-27 | 1 | -0/+2 |
| | |||||
* | ws.go: chanPool should be a map too | Runxi Yu | 2024-09-27 | 1 | -19/+8 |
| | |||||
* | *.go, cca.scfg.example: Expose performance options | Runxi Yu | 2024-09-26 | 1 | -3/+3 |
| | |||||
* | *.go: Wrap errors | Runxi Yu | 2024-09-26 | 1 | -3/+4 |
| | |||||
* | {auth,index,ws}.go: Add contexts for database calls | Runxi Yu | 2024-09-26 | 1 | -1/+1 |
| | |||||
* | ws.go: Reformat | Runxi Yu | 2024-09-26 | 1 | -1/+1 |
| | |||||
* | ws.go: Document chanPoolLock's purpose | Runxi Yu | 2024-09-24 | 1 | -0/+9 |
| | |||||
* | *.go: Linting | Runxi Yu | 2024-09-24 | 1 | -14/+20 |
| | |||||
* | {index,utils,ws}.go: Handle write errors | Runxi Yu | 2024-09-24 | 1 | -8/+28 |
| | |||||
* | {utils,auth,index,ws}.go: Handle errors in random number generation | Runxi Yu | 2024-09-24 | 1 | -1/+1 |
| | |||||
* | ws.go: Log userid and sessionid with channel pointer | Runxi Yu | 2024-09-24 | 1 | -3/+4 |
| | |||||
* | ws.go: chanPoolLock should be a RWMutex rather than a pointer to one | Runxi Yu | 2024-09-23 | 1 | -1/+1 |
| | | | | | | | A pointer to one could always be obtained via &chanPoolLock; but if I declare it as a pointer globally, I would need to initialize it somewhere so I don't get a null pointer dereference. It's more convenient to just declare it as the value. | ||||
* | ws.go: Add missing returns after authentication failure | Runxi Yu | 2024-09-23 | 1 | -0/+2 |
| | |||||
* | ws.go: Initial attempt to manage chanPool | Runxi Yu | 2024-09-23 | 1 | -13/+22 |
| | |||||
* | auth.go, ws.go: Update comments | Runxi Yu | 2024-09-23 | 1 | -5/+5 |
| | |||||
* | ws.go, main.js, index.html: Better WS documentation and structure | Runxi Yu | 2024-09-16 | 1 | -19/+55 |
| | |||||
* | ws.go: Fix previous commit's type inconsistencies | Runxi Yu | 2024-09-13 | 1 | -4/+5 |
| | |||||
* | ws.go: Very basic channels | Runxi Yu | 2024-09-13 | 1 | -5/+17 |
| | |||||
* | ws.go: Clarrify handleWs's purpose | Runxi Yu | 2024-09-12 | 1 | -1/+2 |
| | |||||
* | ws.go: Move the login logic to handleWs from handleConn | Runxi Yu | 2024-09-12 | 1 | -19/+38 |
| | |||||
* | ws.go: gofmt | Runxi Yu | 2024-09-12 | 1 | -3/+2 |
| | |||||
* | ws.go: Use channels to handle incoming messages | Runxi Yu | 2024-09-12 | 1 | -11/+30 |
| | |||||
* | ws.go: Document the message format | Runxi Yu | 2024-09-12 | 1 | -0/+25 |
| | |||||
* | ws.go: TODO: Select c.Read and a broadcast channel | Runxi Yu | 2024-09-11 | 1 | -0/+1 |
| | | | | | | | I'm not sure whether we need to spawn an entirely different goroutine, make a shared channel, and select between the channels. It certainlly doesn't seem like there's a trivial way to block from a synchronous function and a channel, but I might be wrong, being unfamiliar with Go's concurrency. | ||||
* | *.go: Shorter line lengths | Runxi Yu | 2024-09-09 | 1 | -3/+15 |
| | |||||
* | *.go: Add comments | Runxi Yu | 2024-09-09 | 1 | -1/+44 |
| | |||||
* | ws.go: splitMsg should return strings instead of bytes | Runxi Yu | 2024-09-09 | 1 | -7/+9 |
| | |||||
* | ws.go: Split IRC-style messages | Runxi Yu | 2024-09-09 | 1 | -3/+27 |
| | |||||
* | ws.go: gofmt | Runxi Yu | 2024-09-09 | 1 | -1/+1 |
| | |||||
* | ws.go: Check session cookie | Runxi Yu | 2024-09-08 | 1 | -2/+24 |
| | | | | I'm not sure if all browsers send them along in WebSocket requests. | ||||
* | ws.go: Don't close the connection that fast | Runxi Yu | 2024-09-08 | 1 | -7/+8 |
| | |||||
* | ws.go: Don't echo messages back | Runxi Yu | 2024-09-08 | 1 | -4/+9 |
| | |||||
* | ws.go: More helpful error message for non-WS connections | Runxi Yu | 2024-09-08 | 1 | -1/+1 |
| | |||||
* | *: Basic WebSocket connection may be established now | Runxi Yu | 2024-09-08 | 1 | -0/+40 |