BlaB! WS - Frequently Asked Questions

System requirements



By downloading and using BlaB! WS (server & client), you indicate your acceptance of the following terms and conditions:




How to install BlaB! WS

Installing BlaB! WS (server & client) is as easy as possible:

  1. drop blabws-server executable files under /opt
  2. install BlaB! WS client as any other PHP script
  3. link client and server.

Our how-to-install guides describe the whole process in detail.


How to upgrade BlaB! WS

To upgrade blabws-server simply replace the files under /opt/blabws-server with the new ones and restart the server.

To upgrade BlaB! WS client:

  1. Download and unzip the files in a new empty directory e.g. /blabws_new and remove the subdirectory /install
  2. Upload /blabws_new (and all files/subdirectories in it) to your server by an FTP program.
  3. Overwrite config.php with your old config.php file.
  4. Navigate with your browser to /blabws_new/admin - the database will be updated automatically.
  5. Make sure that your new chat is working properly, remove the old chat directory and rename /blabws_new to whatever you wish.


Does BlaB! WS support SSL?

You cannot link directly an SSL certificate to blabws-server. However, if your Apache/Nginx server is configured with SSL you can easily make it act as a websocket proxy - in that way all communications go through standard 80/443 ports without a dedicated websocket port left open. The procedure is very easy and described in detail in our how-to-install guide.


Can I run BlaB! WS on my shared hosting account?

No. You need a dedicated Linux server or VPS with SSH access as a root user or with sudo privileges. Virtual Private Servers (VPS) can cost as cheap as 1-2 USD/month. A good starting point to find an inexpensive VPS is offers preinstalled VPS called droplets with prices starting from $5/month and they have great tutorials on how to deploy, maintain and secure Linux servers.


Can I install BlaB! WS client on one host and run the server on another?

Yes, as long as blabws-server is not behind an Apache websocket proxy. Use Nginx instead.


I have a Windows / BSD / Linux based VPS, can I install BlaB! WS?

Supported operating systems are - Debian 8 Jessie+ / Ubuntu 16.04+ / CentOS 7+. In fact blabws-server should run on any Linux OS, however, older versions of Apache/Nginx do not have a proper websocket proxy. BlaB! WS client can be installed on any Apache(Nginx) / PHP / MySQL(MariaDB) host - no matter the OS.


Can I install BlaB! WS on Raspberry Pi?

No. For now we do not provide blabws-server for ARM processors.


Is it safe to turn PHP shell_exec on?

By default PHP shell_exec is enabled when you install PHP on Ubuntu, Debian and CentOS. PHP shell_exec allows shell commands to be executed via PHP. BlaB! WS client needs shell_exec to start/stop blabws-server from the Admin CP. Those commands are hardcoded and do not depend on user input so you are safe as far as BlaB! WS is concerned.


Can anyone connect to my websocket server? What does ACCESSKEY do?

No. blabws-server accepts connections from BlaB! WS client only. The browser of the user should provide a valid token - UserID / UserName / TimeStamp / CheckSum where CheckSum is a sha256 hash of UserID / UserName / TimeStamp / ACCESSKEY. The token is valid for 10 seconds only. It's impossible to reverse sha256 and extract your ACCESSKEY in order to fake a valid token.


What is WARNING - Handshake error: incorrect token received in my log?

There might be three reasons:

  1. When you check the status of your websocket server from ACP, telnet tries to establish a connection to blabws-server. Since telnet is not a websocket client and does not provide a valid token, the connection is refused, the event added to the log and, oddly enough, telnet reports back - connected.
  2. Something, probably a web spider such as GoogleBot tried to connect to your websocket server with no success since a valid token wasn't provided.
  3. If you use a dedicated websocket port (without websocket proxy) someone/something was scanning your ports.



You have an option in ACP to prevent new users from logging in immediately after registering. New users will be able to to login to chat after the period of time specified in ACP or if the quarantine is lifted manually. Quarantine does not affect guests and is useless if you have guest access enabled.


How does resetting a forgotten password work?

BlaB! WS never sends out email messages. Automated email messages to reset a password or activate an account are unreliable and very often undelivered due to spam filters. BlaB! WS deals with this in a different way. There are two couples of combinations associated with user accounts - Username-Password and Email-RecoveryQuestion-RecoveryAnswer. Users knowing the current password are allowed to set a new one. However, the Email can only be changed with a correct RecoveryAnswer. A forgotten password can be reset in this way:

It's unlikely someone to know or guess both - Password and RecoveryAnswer in order to take full control on another account. Brute-force attacks are not possible - BlaB! WS would accept up to 5 attempts per hour. Both Password and RecoveryAnswer are hashed in the database with salted sha256.


On mobile I have to re-enable sounds every time I enter the chat, why?

Mobile browsers do not play audio and video automatically without user's interaction. That's why on mobile sound notifications are always disabled and you have to re-enable them every session. We provide a PhoneGap mobile app template which allows you to build your own mobile app and enable proper sound notifications using the PhoneGap media plugin (see below - mobile app for Android/IOS).


Guests cannot login with their chosen username, why?

For security reasons guests can login to chat with a previously chosen username as long as their IP is the same - in their case the IP is their password. A guest can always become a properly registered user by providing a password / email / recovery question & answer. You can disable guest access from ACP ยป Settings.


BlaB! WS seems to be slower (or doesn't work) with my mobile over 3G/4G?

Some carriers use transparent proxies "to ensure reliable and fair access to resources in cellular networks". Sometimes such proxies are not configured to work properly with websockets and sometimes such proxies allow outbound connections to ports 80/443 only. Use SSL in combination with an Apache/Nginx websocket proxy.


BlaB! WS doesn't work from my home / school / office, why?

Most probably there is something (firewall / proxy / antivirus) that allows outbound connections to ports 80/443 only. Use Apache/Nginx websocket proxy so that your BlaB! WS client connects to blabws-server on ports 80/443.


Can I add or replace emoticons?

Yes but it's not easy. The list of emoticons can be found in emocodes.php. There are no image files, all emoticons in SVG format are base64 encoded entries in emoticons.css. You'd better stick to the excellent EmojiOne emoticons.


Can I replace sound notifications?

Easily! Go to the bottom of the product page and click on the link BlaB! WS - select sounds & create your notification file. Generate sounds.js and replace your current sounds.js file in the main BlaB! WS (client) folder.


Can I add or replace stickers?

Yes, easily. Put your stickers in JPG/PNG/GIF/SVG format in subdirectories under /stickers. Use only letters & numbers without spaces in the names of the subfolders! The image files will be scaled automatically to 64x32px in the sticker list and to 100x50px when posted. It is recommended to use SVG images with 2:1 aspect ratio.

My theme doesn't match the white icons, how to change their color?

The icons are base64 encoded entries in blabws.css. You can change their color with the built-in search and replace function of your favorite text editor.

base64 RkZGRkZG = FFFFFF (white)
base64 MDAwMDAw = 000000 (black)
base64 NjY2NjY2 = 666666 (grey)


What is WebKitCSS in the style section of the Admin CP?

We do not use browser specific hacks - such hacks usually break in the long run. This is a place to provide custom CSS code for WebKit based browsers and by default you have a CSS line that shows smaller and better scrollbars (WebKit desktop only).



How can I show who is online on my front page?

This is an experimental feature and not enabled by default. To make blabws-server keep a list of the online users in a file, open config.php with a text editor and set a filename of a writeable file e.g. $blabws_server_onli='/tmp/'; then restart your blabws-server. In the file online.php enter path/name of the same file: $online_list='/tmp/';. Now you can call online.php as an external JS file from any HTML page.

<script src="/chat/online.php"></script>

outputs document.write(3)

<script src="/chat/online.php?mode=1"></script> 

outputs document.write('Jo, Adam, Maria')

<script src="/chat/online.php?mode=2"></script>

adds a fixed DIV to the BODY element of your page that can be updated periodically with Ajax requests, can be seen at our demo page (also see the comments in online.php to adjust the look etc)


Can I have a mobile app for Android/IOS?

The easiest way to create an Android app: go to web2apk, submit the URL of your BlaB! WS client ending with ?mobileapp=1 (e.g. xttp:// and you'll be given an APK file that can be installed on every Android smartphone.

A better app for both Android and IOS can be created with a free service called PhoneGap Build provided by Adobe. There are no fees, no ads in your app and it is safe to use. You'll have to register, sign in and upload a zip file containing a folder www with index.html and config.xml in it - in the first file which is a normal HTML document, you simply redirect with JavaScript to the URL of your BlaB! WS client ending with ?mobileapp=1 (e.g. xttp:// In config.xml you have to set app name, author etc and you can adjust some advanced settings such as screen orientation. PhoneGap provides an example of config.xml.

Download here a ready to use ZIP file for PhoneGap Build incl. icons and proper handling of the back button - do not forget to change the URL in index.html and set app name, author, version etc in config.xml. ?mobileapp=1 in the URL ensures that the Admin CP will be opened in the same window and posted links in chat open a dialog for copy/paste. The app would require Internet permissions only.

Download here an alternative ZIP file for PhoneGap Build with icons and proper handling of the back button - remember to change the URL in index.html and set app name, author, version etc in config.xml. ?mobileapp=2 makes BlaB! WS call back the PhoneGap media plugin via a custom JS function that would then create native sound notifications. ?mobileapp=2 also ensures that the Admin CP will be opened in the same window and posted links in chat open a dialog for copy/paste. This app would need more permissions required by the PhoneGap media plugin.

You can download and test our Android apps from the demo page.

Creating a mobile app is one thing, submitting it to AppStore or GooglePlay quite another - please refer to the appropriate documentation: Google / Apple. We do not provide support for mobile apps.


Can I have a Chrome web extension?

Web extension GIF

Although easy and possible, loading the chat as a web extension is useless - the extension box will be closed as soon as it loses its focus.

Download here a ZIP file with all the necessary files to create a web extension that shows who is online. A click anywhere within the box opens BlaB! WS in a new tab. First, you need to have who is online working and then set the proper URL to your BlaB!WS client: in popup.html.

Creating a web extension is one thing, submitting it to Chrome Web Store quite another - please refer to the appropriate documentation.


Why SVG and not PNG/GIF/JPG images like everybody else?

Almost all smartphones and tablets and a large part of the computer displays these days have pixel ratio x2, x3 or even x4. A raster image: GIF, JPG or PNG should be 2, 3 or 4 times larger to look as expected on such a screen. A solution is to use srcset {Webkit Demo} and then you must have 4 files for each actual image. On the other hand SVG images are relatively small, look well and are supported in all major browsers.


What does version XX.XX mean?

It's similar to Ubuntu versioning. 17.08 means released in August 2017 and 17.08.2 means August 2017 revision 2. You should always run the latest server & client version (latest client and server version might be different e.g. 17.06 and 17.12). The version of blabws-server can be found in its log, client version can be seen in ACP [press ESC].


Page updated: 2017-11-07