About This File
Babble is a real time chat system using node.js and sockets. It uses less resources and doesn’t rely on long polling or interval scripts to check for new message. Babble is fully featured with those features laid out below.
NOTICE: If you are upgrading Babble, you will need to restart your babble.js application. if you have moved it from the default directory you will need to take the updated one, verify the information it contains, and replace the one you removed and then restart the babble.js app for node.
A modern browser that supports web sockets. (Firefox/IE11/Edge/Chrome/Safari supports websockets. For mobile browsers, I will only be supporting Safari and Chrome).
Node.js installed on a local or a remote server that can run a node.js script. I have only tested the last 4 versions of node.js, but the latest version of node.js you can install, the better. I will attempt to compile a node.js versions that are compatible with Babble.
Cloudflare, cloudflare only has a limited range of ports that can be used if you choose to use this particular service, you will need to contact them about what ports are available to you. the only alternative to this is to use a sub-domain (not tied into cloudflare) and/or the servers IP address instead of your sites URL for the NODE URL in the ACP.
**if you are running a server that doesn't use a LAMP ( Linux, Apache, MySQL, PHP) or LEMP (Linux, NGINX, MySQL, PHP) server, I will not be able to give support for. AFAIK node.js/socket.io will run on windows and mac os x, but configuration might prove difficult. As for *BSD servers, they should operate similar to a Linux server. Refunds will be given at my discretion, this does not mean I will not provide them for any reason, but for a valid reason.
Each purchase only entitles a installation on 1 live site and 1 dev site. If you wish to run babble on multiple sites, you will need to purchase babble for each site. If you are found in violation of this agreement, I can choose to revoke your access to future updates and support until the matter is rectified.
If you purchase a copyright removal, Babble will occasional make a call home to http://codingjungle.com to validate the copyright removal key. Copyright Removal keys will need to be purchased for each purchase of babble if you wish to run it on multiple sites without branding.
- Rooms: Babble comes with two default rooms that can not be removed. The “Babble” room is used by default for Babble, and the Widget Room is used by the “Widget” (the widget can be configured to use the default room). Each room has permissions that can be set like “View, Message, Whisper, Edit, Delete, Upload, and Archives”. Each room also has the ability to be configured independently of each other on uploads (what types and sizes), how many messages to show by default, rules to show before entering the room. Rooms can also have 3 bots they can configure (more on bots later). Rooms can be password protected.
- Uploads: Each room can be configured to allow uploads. If the upload is an image, the image will be “lazy loaded” and resized to fit the dimensions of the message area better. If it is a non-image upload, it will display a link to download. NOTE: Groups who can see the room, can also download and view images.
- Sounds: Babble comes with a collection of sounds for send, receive, entering, leaving and whispers. Users can enable or disable each sound as they see fit. The sound files can be replaced at any time in the ACP by pointing to the corresponding sound setting to the new location (this is to avoid future updates from overwriting your sound files). NOTE: due to some limitations in mobile OS’s (iOS and android) even if the sounds are enabled by the user, there is one additional step they must take to hear sounds on the effected OS’s. On mobile devices a Speaker Icon will appear, that will need to be activated to be able to hear sounds, this action must be done each page refresh.
- Whispers: Whispers are private messages that are sent in between users. They will open in a “tab” in the room and will flash when a new message is received if you aren’t currently active on the tab that is. Whispers only work inside the room, you currently can not “whisper” to some one who is not logged into the room you are in (at a later date this might change).
- Browser Notifications: A user can set how many new messages they receive in a room before a browser notification is triggered (or they can disable them all together). Currently these do not work on mobile OS’s, in the future I plan on adding notifications for iOS and Android.
- New Message Order: By default babble will order messages newest to oldest, for some users this might not be ideal, so they can reverse the order to oldest to newest. Any new message after this will honor the setting.
- Group Content: You can set a min. content count per room for each user group before they can send messages. You can use this feature as a reward to your members for participation on your site. Note: Messages made in babble will not increment content counts.
- Command Aliasing: you can set any number of aliases to existing/custom commands, this will help if you want to "localize" the commands.
- Stats - if stats are enabled for a room, you can keep track of basic stats like how many messages have been made in a room, the most online ever in a room, the current day's tally of how many have been in a room, and the top 5 users who make messages in a room.
- Archive - if enabled, a user can select to load messages previous made in the room. this is a group permission.
- Babble comes with 4 bots, each serve a different function and are triggered in different ways. 3 of the bots can be configured per room, where the 4th bot can be configured to which rooms it sends messages too, as most of its settings are “global”. Hopefully Babble Bots can help you accomplish some pretty amazing things and enrich your users experience with babble.
- Time Bot: the time bot can be configured per room*. This bot can be configured to send different messages at different times**. You can use HTML/BBC in the bots messages. This bot runs from a task, so its HIGHLY recommend that you have your task configured to run as a cron job to see the best results. If not configured to a cron, this bot might not function properly.
- * you can configure this bot to store its messages in the database or not. Due to a technical limitation with node.js the bot is unable to check to see if there are any users in the room or not, so instead of having the chat history filled with messages from the time bot, they will “go away” on a page refresh.
- ** this is in minutes passed since the bot was configured, if you set a message to send every 10 minutes, then the first message will be sent 10 minutes after you configured the bot, and each additional message will be sent 10 minutes after this.
- Count Bot: This bot can be configured per room. You can configure this bot to send messages after x amount of messages sent by users*. You can also send different messages x amount of messages sent. You can use HTML/BBC and special variables(1) in your messages.
- * this does not include whispers sent or messages from other bots.
- Phrase Bot: This bot can be configured per room. You can configure this bot to send messages when a match to a word/phrase is made. You can have multiple matches for the same message or multiple messages for different matches. You can use HTML/BBC and specials variables(1) in the messages.
- Notifications: This is the bot that has a global configuration. This bot will send messages out when new content is posted to the supported applications*. Permissions are honored on these notifications, so if the user doesn’t have access to to view the area in question, they wont see the notification. This bot can only be configured to tell it which rooms to run in, the rest of its settings are global due to its nature.
- * IPS applications are the only ones support for notifications. In theory any application that uses the content item class should work, but I have only tested my own application that use this and they will work with it, so I’m pretty sure it will work with the other 3rd party application that use the classes. Babble has some API elements to it that will be document on my site later, so any application it doesn’t support, the application developer should be able to create a hook without much of a problem.
- (1) There are special variables that the count bot and phrase bot have access to, that can be used in the message, to show the name of the person who triggered, the bot’s name, and the match (this is for the phrase bot only).
- Bots can use commands, if it the command requires a the members name, use the special variable #member#
Commands can perform special functions when issued. The commands can be issued thru the chat area (similar to how IRC does it). Some commands have group restrictions. You can add commands in 2 ways, in the ACP you can add basic commands , if you need more advanced functionality you can create a “command” file. Commands have been expanded greatly in 2.1, you can now "alias" them and the phrase/count bot can now use commands (the time bot can as well, but it wont have access to the #member# special variable).
- Announce – adds or removes an announcement to the room
- Ban – bans a user for a room.
- Unban – unbans a user for a room.
- BanList – Show’s who has been banned from a room.
- Ignore – Ignore a user in a room.
- Unignore – Stop ignored a user in a room.
- Kick – kick a user from a room.
- Me – an action command for a room.
- Mute – Mutes a member for everyone in a room.
- Unmute – unmutes the member in a room.
- Mutelist – shows a list of users who have been muted.
- Notifications – disables or enables notifications from the notification bot.
- Topic – adds or removes a chat topic from a room.
- Rules - Show the rules for a room if they have them.
- Password - sets a password for a room
- Purge - deletes all the existing messages in a room
- Stats - displays a rooms stats if enabled
- Rand - display a random GIF from giphy.com
- and many more!
What's New in Version 2.2.3 See changelog
If you are running a reverse proxy in nginx or a tunneling proxy for Apache, you can now remove these, as babble.js now supports SSL. you will need to know the path of your private.key and certificate.crt, you might also additionally need your cabundle.crt, but it is not required afaik. babble.js is documented to where to add these.
- fixed commands
- fixed issue with scroll bar appearing for phones
- added in ssl support for babble.js, no more need for reverse proxies.
- upgraded socket io to latest version
- upgraded elephant.io to latest version