websocket-docker

2024-11-27 17:57:15 阅读:3 编辑

php(做客户端)连接ws

 //composer require textalk/websocket
   $client = new \WebSocket\Client("wss://ai.zhyai.cn:8282");
    if(empty($msg)){
        $msg = "how are you";
    }
    $data = [
        "user_list"=>[228,"228_mp"],
        "msg"=>$msg
    ];
    $send_message = [
        "tag"=>"__broadcast",
        "data"=>$data
    ];
    $client->send(json_encode($send_message));

node.js(做客户端)连接ws

/**
 * WebsocketClient
 * @class
 */
const {
    net
} = require('electron');
const fs = require('fs');

class WebsocketClient {

    constructor(app) {
        this.app = app;
        this.user_id = 228;
        this.connect_status = 0;
    }

    create() {

        this.initConnection();
        this.reconnectInterval();
    }
    reconnectInterval() {
        let timer = setInterval(() => {
            if (this.connect_status == 0) {
                console.log("重连中...");
                this.initConnection()
            }
        }, 2000);
    }

    initConnection() {
        const Websocket = require('ws')
       //const url = 'ws://192.168.2.248:8282'
     //   const url = 'ws://123.249.34.10:8282'
       // const url = 'ws://ai.zhyai.cn:8282'
        const url = 'wss://ai.zhyai.cn:8282'
        let connection = new Websocket(url)

        connection.onopen = () => {
            this.connect_status = 1;
            console.log("websocket连接成功");
            let message = {
                tag: "__bind_user",
                data: {
                    user_id: this.user_id,
                }
            };
            message = JSON.stringify(message);
            connection.send(message);
        }

        connection.onerror = (error) => {
            console.log(`WebSocket error: ${error}`)
        }
        connection.onclose = (e) => {
            console.log(`server close`,e.code,e.reason);
            this.connect_status = 0;

        }

        connection.onmessage = (e) => {
            console.log(e.data)
        }

    }
}

WebsocketClient.toString = () => '[class WebsocketClient]';
module.exports = WebsocketClient;