Description
NS Chat Plugin enables real-time communication between WordPress users using WebSocket technology, powered by the Workerman library.
Key Features:
* Real-time private chat between users
* Visual unread message indicators
* Persistent chat history stored in the database
* Lightweight modular JS + PHP architecture
* Automatic migration and sync of WP users to chat system
* Linux daemon service with SSL support for secure connections
* Future-ready integration with NFS or AWS S3 for file upload/download
Planned Features:
* Message editing and deletion
* Read receipt indicators (message seen)
* File attachments with optional NFS or AWS S3 integration
Ideal for community websites, intranets, or any platform requiring internal messaging without third-party services.
For integration help or consulting on adapting the plugin to your project, contact the developer at: ns.group.tech@gmail.com
WebSocket Server Setup (Linux with SSL)
-
Create a systemd service file:
bash
sudo vim /etc/systemd/system/websocket_server.service -
Paste the following content:
bash
[Unit]
Description=WebSocket Server for NS Chat (SSL)
After=network.target
[Service]
ExecStart=/usr/bin/php /file/to/path/yourdomain/wp-content/plugins/ns-chat/server.php start
Restart=always
RestartSec=25
User=www-data
Group=www-data
StandardOutput=file:/var/log/websocket_server.out.log
StandardError=file:/var/log/websocket_server.err.log
[Install]
WantedBy=multi-user.target -
Add SSL context in
server.php
:
php
$context = [
'ssl' => [
'local_cert' => '/path/to/file.crt',
'local_pk' => '/path/to/file.key',
'verify_peer' => false,
]
]; -
Set permissions for plugin folder:
bash
sudo chown -R www-data:www-data /path/to/ns-chat/
sudo chmod -R 775 /path/to/ns-chat/ -
Reload and start the daemon:
bash
sudo systemctl daemon-reload
sudo systemctl enable websocket_server --now
sudo systemctl restart websocket_server
sudo systemctl status websocket_server -
Check logs if needed:
bash
/var/log/websocket_server.out.log
/var/log/websocket_server.err.log
Custom Port Configuration
By default, the WebSocket server listens on port 2346.
To use a different port:
-
Change the port in
server.php
:
php
$wsWorker = new Worker('websocket://0.0.0.0:2346', $context); -
Change the port in
chat-ui.js
:
js
wss://${chatData.domainName}:2346
this.socketManager = new WebSocketManager(, (message) => this.handleIncomingMessage(message));
-
If the port is closed, then open a new port on your server’s firewall:
bash
sudo ufw allow <your-port>/tcp
sudo firewall-cmd --permanent --add-port=<your-port>/tcp
sudo firewall-cmd --reload
sudo iptables -A INPUT -p tcp --dport <your-port> -j ACCEPT
sudo iptables-save > /etc/iptables/rules.v4
Database Tables
The plugin creates and uses the following tables:
wp_ns_chat_dialogues
wp_ns_chat_messages
wp_ns_chat_users
Tables are created and populated automatically on plugin activation.
User Synchronization
- Initial migration of all users from
wp_users
towp_ns_chat_users
on plugin activation. - New registrations are handled by:
php
add_action('user_register', 'ns_chat_add_user_on_registration'); - Profile updates are synced via:
php
add_action('profile_update', 'ns_chat_update_user_data');
You may bind these functions to custom hooks based on your appβs logic.
License
GPLv2 or later
Installation
- Upload the plugin folder
ns-chat
to/wp-content/plugins/
. - Activate the plugin through the βPluginsβ menu in WordPress.
- After activation, a new page template called “NS Chat Template” will be available when creating pages.
- Set up the WebSocket server on your Linux machine (see below).
FAQ
-
No, it requires a persistent PHP process for the WebSocket server. Use a VPS or dedicated server.
-
Is SSL required?
-
Yes. To use secure WebSocket (wss://), SSL certificates must be configured in
server.php
. -
Can I use a different port than 2346?
-
Yes. See “Custom Port Configuration” section.
-
Can I get help with integration into my custom project?
-
Yes, you can contact the developer at ns.group.tech@gmail.com for custom integration support or consulting.
-
Does it support group chats?
-
Not yet. Planned in future versions.
Reviews
There are no reviews for this plugin.
Contributors & Developers
“NS Chat” is open source software. The following people have contributed to this plugin.
ContributorsTranslate “NS Chat” into your language.
Interested in development?
Browse the code, check out the SVN repository, or subscribe to the development log by RSS.
Changelog
1.0
- Initial public release.
- One-on-one messaging with WebSocket daemon
- User sync and message storage