solarshado / nodechat Goto Github PK
View Code? Open in Web Editor NEWSimple Node.js-based chat experiment
Simple Node.js-based chat experiment
Remember the last read message when switching away so it can be marked when you return.
seems to be a client-side issue: after resuming from sleep, or something else that causes an automatic reconnect, all messages received are duplicated.
Suspect server is improperly handling reconnect events, but more investigation is needed
When selecting text in chat it is way too easy to select the username along with the first word of a message. For some reason, the browser isn't seeing a word-break there.
After a link is clicked in the chat and opened in a new tab, focus the text input box so that input can be entered without needing to click on the input box after returning to the NodeChat tab.
While entering a message in NodeChat and clicking the "Send" button, the send button remains focused after message has been submitted. It should return focus to the text input area after submission so that it does not require re-focusing before sending another message.
For example:
Obviously would have to be a customizable list, probably server-side.
Maybe also allow something like "#word(url)" for user-defined links...
Offer the ability for the client to switch between various themes and styles.
Maybe there could be some sort of settings panel, combo box, or radio buttons to toggle between offered themes.
The setting could either be persistent or simply selectable each time the client connects to the chat.
When a URL is posted in the chat, it should be hyperlinked so that it is easily usable.
... and that can make it difficult to catch up if there's a bit of a backlog.
Solution: only autoscroll if already at the bottom of the log
This feature could provide a method for setting your status while in the chat so that others know if you are active or not.
There could be chat commands for changing the status such as:
!afk
!avail
Maybe the user's color could change between yellow for !afk and the default green for !avail
Alternatively, maybe the user's name could display differently depending on status.
If away:
Chefalton [afk]
If available:
Chefalton
An HTTPS/SSL connection would be a nice feature to add to the chat.
Even if the certificate is not signed by a CA or valid, it would be nice if the chat was encrypted. It would be a nice feature to have which is lacking in many other chat apps.
When mentioning a user's name in the chat, offer automatic name completion in order to more quickly complete entry.
Increase the size of the message box and allow for multi-line editing.
Audio notifications for Joins/Leaves/New messages.
If a name is mentioned in the chat, tag the name with a color. Tag the other names with a different color.
This will make mentions more recognizable if there are a few going on at one time.
Visible/audible name mention notifications when the username is detected in the chat window.
Add a favicon to make the tab easier to find.
I don't mind which icon, but here's one with the nodeChat initials.
Interface tweaking for use on mobile devices.
EDIT: Resize the text area so that it is viewable and make the text input area more friendly for mobile entry.
Tweak to client rendering to support /me "commands"
Change the current login process to allow the server to deny the client's connection attempt.
or it could have been the ()s... This name failed "Chefalton (ASG)"
It would be a "nice to have" for the ability to "claim" or setup authentication to register and reserve a username.
Maybe a settings area or text command to associate a password with a particular username so that it can't be used by other people without entering the correct password. (Like Nickserv name registering on IRC).
Maybe? Not sure if this is a good idea.
This SO thread has some useful code.
Support a list of regexes that, if matched to a message, call an associated function to transform the message content before it is displayed.
Could make #21, #17, and #29 almost trivial.
TODO: Fold the current linkification of URLs into this system.
Rough plan:
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.