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;