NS Chat

外掛說明

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

安裝方式

  1. Upload the plugin folder ns-chat to /wp-content/plugins/.
  2. Activate the plugin through the ‘Plugins’ menu in WordPress.
  3. After activation, a new page template called “NS Chat Template” will be available when creating pages.
  4. Set up the WebSocket server on your Linux machine.

常見問題集

Does this work on shared hosting?

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.

使用者評論

這個外掛目前沒有任何使用者評論。

參與者及開發者

以下人員參與了開源軟體〈NS Chat〉的開發相關工作。

參與者

將〈NS Chat〉外掛本地化為台灣繁體中文版

對開發相關資訊感興趣?

任何人均可瀏覽程式碼、查看 SVN 存放庫,或透過 RSS 訂閱開發記錄

變更記錄

1.0

  • Initial public release.
  • One-on-one messaging with WebSocket daemon
  • User sync and message storage