plugin-icon

NS Chat

Real-time WebSocket chat for WordPress with user sync and message history.
Versione
1.0.1
Ultimo aggiornamento
Sep 23, 2025

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)

  1. Create a systemd service file: bash sudo vim /etc/systemd/system/websocket_server.service

  2. 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

  3. Add SSL context in server.php: php $context = [ 'ssl' => [ 'local_cert' => '/path/to/file.crt', 'local_pk' => '/path/to/file.key', 'verify_peer' => false, ] ];

  4. 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/

  5. 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

  6. 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:

  1. Change the port in server.php: php $wsWorker = new Worker('websocket://0.0.0.0:2346', $context);
  2. Change the port in ns-chat.php: php $ws_port = 2346;

  3. You can check and change the port in chat-ui.js: js const port = nschat_data.wsPort || 2346;

  4. 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

  1. Initial migration of all users from wp_users to wp_ns_chat_users on plugin activation.
  2. New registrations are handled by: php add_action('user_register', 'ns_chat_add_user_on_registration');
  3. 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

Gratuitosul piano Business
Testato fino alla versione
WordPress 6.8.3
Questo plugin ora può essere scaricato per il tuo sito .