Well here it is! After much work we finally have a (somewhat) working Instant Messenger!
It is very early alpha so expect crashes, freezes and things generally not working right or well. I know everybody wants a messenger so I am sharing it early. All it can do for now is global chat, domain chat and private messaging.
You can get it at http://craxim.com/scripts/craxim.js
CraxIM includes 3 separate windows - the User list, chat history and the input bar.
Next to each window is a small white dot
If you click on this dot it will lock the window in place and autohide it. When it is hidden you can mouseover the dot to look at the window. If you want to move it around just click the dot again to unlock it.
If there is activity in the window while it is invisible the dot will turn green, alerting you that something has happened.
If you would like to private message a user, just click on their name and the input bar will automatically fill with the proper command to send them a private message.
The user list shows everybody online in gray, while CraxIM users show up as white.
There are 3 Status settings - ‘Available’ (green), ‘Busy’ (yellow) and ‘Hidden’ (red). In busy mode you can global chat but not receive messages. In hidden mode you can read global chat but can’t message or receive messages.
You can switch between domain chat and global chat. If a channel has activity while you aren’t in it, the button will turn green to show there was activity.
The menu options don’t do much yet (they are stubs for now).
Here are some of the things planned for craxim:
- add chat tabs for private messages
- domain admin controls so domain owners can police their domain chat however they see fit.
- allow domain owners to promote users into custom ranks that can each have their own set of commands
- server messages for domains - messages appear in large text in the middle of the screen
- multiple language support
- window options (color, alpha background, font size, etc)
- resizable windows
- get the scroll bars to work on chat history and user list
- word wrap
- saving/loading chat history logs
- user profiles with photos
- searchable user directory
- plugin system for developers to create their own add-ons and list it in our add-on directory
- per-friend and overall encryption
- automatic user authentication (right now users are not authenticated, you’ve been warned!)
…and a lot more!
Some of you may have problems connecting with websockets. You can go to https://www.websocket.org/echo.html to test your websockets if you have problems. It could be your firewall, network setup or just a problem with HiFi (they are looking into what is causing it). Here is a script you can run to test websockets.
The status settings work now. There are 3 - ‘Available’ (green), ‘Busy’ (yellow) and ‘Hidden’ (red). In busy mode you can global chat but not receive messages. In hidden mode you can read global chat but can’t message or receive messages.
switched all script hosting to http instead of https because users with Macs were having problems.
- Added domain chat. You can switch between global and domain using these buttons. When there is activity in the unselected chat the name will turn green to notify you of activity.
- Fixed a bug that would prevent the entire global userlist from displaying properly.
- Session resumes now work. You no longer have to wait for your ghost to timeout to log in again.
- logging in users now disconnect properly when there is an error
- Fixed a bug that would screw things up when more than one user was logged in at a time (Thanks to @Ai_Austin and @Richardus.Raymaker for helping to spot this one whether they knowingly helped or not).
- Changed “global” and “domain” buttons to icons indicating global or domain chat selection
- friends list window was based on interface window size, this has been removed and window now has the same size for everybody (at least until window resizing is implemented).
- Private messages now use their own windows. Clicking on a name in the user list will open a private message window. Receiving a private message will also open a window (if a window to that user is not already open).