Commit Graph

37 Commits

Author SHA1 Message Date
raul a21199a6e0 Optimize client RAM memory usage
The receiveMessage() function would regularly keep casting strings based
on a 2048 byte array, this didn't seemingly pose a problem until I
noticed the RAM usage go through the roof when the client had to be
populated with the chat history of a lengthy chat log by the server. To
fix this I am now creating a second array using the number of bytes
being returned by the Read() method and copying the 2048 byte array's
contents into it, setting the former array to nil afterwards.
2024-05-14 15:31:55 +02:00
raul 5bb37a53fe Add date formatting to messages
I also went ahead and removed adding the user's IP to each one of its
messages to retain the user's privacy and security.
2024-05-14 15:30:16 +02:00
raul 6d15f303b7 Fix extra newlines being appended by populateChat() on TLS based servers
For some reason, writing to a conn variable on a TLS connection
appends newlines by default, so new users will have their chat box
populated if the server is using --history/-r with messages that have
unnecessary newlines
2024-05-14 09:58:09 +02:00
raul 872523700b Minor formatting changes 2024-05-14 09:27:23 +02:00
raul 7493af68fc Implement choosing TLS/plaintext for client 2024-05-14 09:26:45 +02:00
raul afafb12663 Implement choosing TLS/plaintext for server 2024-05-14 09:11:22 +02:00
raul 51b0dd5258 Implement clientside TLS 2024-05-14 09:07:00 +02:00
raul 0f33d13d6a Implement serverside TLS 2024-05-14 09:06:45 +02:00
raul e3b681e904 Add gen-cert.sh 2024-05-14 09:06:24 +02:00
raul e0f9c63a54 Reduce latency time for synchronization 2024-05-13 13:04:45 +02:00
raul 940d1287ec Stop showing errors on client Ctrl+C 2024-05-13 12:04:20 +02:00
raul 015e1bb65f Handle passwords clientside 2024-05-13 12:02:32 +02:00
raul 99923c64b1 Handle passwords serverside 2024-05-13 12:02:21 +02:00
raul 8cb40303dc Add password parameter 2024-05-13 12:02:03 +02:00
raul a615cb9194 Fix windows version being unable to take input 2024-05-10 09:50:26 +02:00
raul b6e133c608 Clean up Cobra files 2024-05-10 07:58:12 +02:00
raul 2571936a48 Add shorthand parameters 2024-05-08 08:34:07 +02:00
raul 158bf9373f Add history parameter to restore old chats 2024-05-07 10:48:16 +02:00
raul 9e1affdc6c Occupy rest of terminal space
After realizing what I'd have to go through to build a functional "Users
online:" view, I have decided to NOT do that, especially because this
entire thing still runs on raw TCP messages for commmunication and
trying to tell apart regular messages from join/disconnect messages in
the client to properly update the possible new view would be hell.
2024-05-07 09:49:34 +02:00
raul 370f217208 Add auto-scroll control 2024-05-06 14:09:47 +02:00
raul bcaa1c12af Add credits and current username to UI 2024-05-06 13:45:06 +02:00
raul f8332d102a Disable "Send it" button 2024-05-06 13:34:29 +02:00
raul c63028dea0 Add client TUI scrolling 2024-05-06 13:31:44 +02:00
raul 7eb991a4e4 Tweak chat dimensions 2024-04-27 21:46:00 +02:00
raul 80da12cfcf Nuclear refactoring
Go audit / audit (pull_request) Successful in 1m48s Details
I've finally managed to properly rebuild the project, it's not extremely
clean, but compared to before, it's infinitely more functional and
expandable.
2024-04-26 08:48:48 +02:00
raul cec33907b7 Removed currentUsers view
Go audit / audit (pull_request) Successful in 1m14s Details
I cannot handle this codebase anymore
2024-04-14 09:48:21 +02:00
raul c85fa5b031 Fixed catastrophic memory leak in client
Whenever a server would be stopped while the clients were connected to
it, the for loop handling the messages received by the server would
start a feedback loop as no more data could be read from "conn", thus
spawning an infinite number of byte arrays and crashing my laptop
2024-04-14 09:27:17 +02:00
raul ca10bc4284 Implement Gocui UI into mini-chat client 2024-04-13 13:11:36 +02:00
raul 75dac0ccef Attempt to clean up server codebase 2024-04-13 13:08:43 +02:00
raul c4fb5606f6 Testing sending messages to server from client 2024-04-12 12:00:08 +02:00
raul 6599c66abb Add ui.go file 2024-04-12 11:59:48 +02:00
raul 622340610a Create client.go 2024-04-02 11:27:48 +02:00
raul adf22b588f Finish chat functionality and prepare for release
Go audit / audit (push) Successful in 1m8s Details
2024-04-01 12:28:22 +02:00
raul 6da487bc86 Create testing branch and start channels 2024-03-29 14:57:02 +01:00
raul cd009e8ee6 Really minor tweak
Forgot to change back a value while testing error handling to avoid
crashing server on user disconnect
2024-03-29 09:40:02 +01:00
raul 544369cb9f Fixed server crashing whenever a user disconnected
Instead of trying to let Cobra handle the possible errors produced in
client input through bufio.NewReader(conn), I'm handling them manually
by returning the function if there's an error detected, therefore
severing the goroutine and letting the main server run normally
2024-03-29 09:36:03 +01:00
raul 2ff99a284b Adding files to project 2024-03-29 09:04:20 +01:00