PluginProbe ʕ •ᴥ•ʔ
AI Engine – The Chatbot, AI Framework & MCP for WordPress / 2.8.4
AI Engine – The Chatbot, AI Framework & MCP for WordPress v2.8.4
3.5.9 3.5.8 3.5.7 3.5.6 3.5.5 3.5.4 3.5.3 3.5.2 3.5.1 3.5.0 3.4.9 3.4.8 3.4.7 0.2.1 1.6.91 0.2.2 1.6.92 0.2.3 1.6.93 0.2.4 1.6.94 0.2.5 1.6.95 0.2.6 1.6.96 0.2.7 1.6.97 0.2.8 1.6.98 0.2.9 1.6.99 0.3.0 1.7.0 0.3.1 1.7.1 0.3.2 1.7.2 0.3.3 1.7.3 0.3.4 1.7.4 0.3.5 1.7.5 0.3.6 1.7.6 0.4.0 1.7.7 0.4.1 1.7.8 0.4.2 1.7.9 0.4.3 1.8.0 0.4.4 1.8.1 0.4.5 1.8.2 0.4.6 1.8.3 0.4.7 1.8.4 0.4.8 1.8.5 0.4.9 1.8.6 0.5.0 1.8.7 0.5.1 1.8.8 0.5.2 1.8.9 0.5.3 1.9.0 0.5.4 1.9.1 0.5.5 1.9.2 0.5.6 1.9.3 0.5.7 1.9.4 0.5.8 1.9.5 0.5.9 1.9.6 0.6.0 1.9.7 0.6.1 1.9.8 0.6.2 1.9.81 0.6.3 1.9.82 0.6.4 1.9.83 0.6.5 1.9.84 0.6.6 1.9.85 0.6.7 1.9.86 0.6.8 1.9.87 0.6.9 1.9.88 0.7.0 1.9.89 0.7.1 1.9.90 0.7.2 1.9.91 0.7.3 1.9.92 0.7.4 1.9.93 0.7.5 1.9.94 0.7.6 1.9.95 0.7.7 1.9.96 0.7.8 1.9.97 0.7.9 1.9.98 0.8.0 1.9.99 0.8.1 2.0.0 0.8.2 2.0.1 0.8.3 2.0.2 0.8.4 2.0.3 0.8.5 2.0.4 0.8.6 2.0.5 0.8.7 2.0.6 0.8.8 2.0.7 0.8.9 2.0.8 0.9.0 2.0.9 0.9.2 2.1.0 0.9.3 2.1.1 0.9.4 2.1.2 0.9.5 2.1.3 0.9.6 2.1.4 0.9.7 2.1.5 0.9.8 2.1.6 0.9.81 2.1.7 0.9.82 2.1.8 0.9.83 2.1.9 0.9.84 2.2.0 0.9.85 2.2.1 0.9.86 2.2.2 0.9.87 2.2.3 0.9.88 2.2.4 0.9.89 2.2.5 0.9.9 2.2.51 0.9.91 2.2.52 0.9.92 2.2.53 0.9.93 2.2.54 0.9.94 2.2.56 0.9.95 2.2.57 0.9.96 2.2.6 0.9.97 2.2.60 0.9.98 2.2.61 0.9.99 2.2.62 1.0.0 2.2.63 1.0.01 2.2.70 1.0.1 2.2.80 1.0.2 2.2.81 1.0.3 2.2.90 1.0.4 2.2.91 1.0.5 2.2.92 1.0.6 2.2.93 1.0.7 2.2.94 1.0.8 2.2.95 1.0.9 2.3.0 1.1.0 2.3.1 1.1.1 2.3.2 1.1.2 2.3.3 1.1.3 2.3.4 1.1.4 2.3.5 1.1.5 2.3.6 1.1.6 2.3.7 1.1.7 2.3.8 1.1.8 2.3.9 1.1.9 2.4.0 1.2.0 2.4.1 1.2.1 2.4.2 1.2.2 2.4.3 1.2.21 2.4.4 1.2.3 2.4.5 1.2.30 2.4.6 1.3.0 2.4.7 1.3.1 2.4.8 1.3.2 2.4.9 1.3.3 2.5.0 1.3.31 2.5.1 1.3.32 2.5.2 1.3.33 2.5.3 1.3.34 2.5.4 1.3.35 2.5.5 1.3.36 2.5.6 1.3.37 2.5.7 1.3.38 2.5.8 1.3.39 2.5.9 1.3.40 2.6.0 1.3.41 2.6.1 1.3.42 2.6.2 1.3.43 2.6.3 1.3.44 2.6.5 1.3.45 2.6.6 1.3.46 2.6.7 1.3.47 2.6.8 1.3.48 2.6.9 1.3.49 2.7.0 1.3.50 2.7.1 1.3.51 2.7.2 1.3.52 2.7.3 1.3.53 2.7.4 1.3.54 2.7.5 1.3.56 2.7.6 1.3.57 2.7.7 1.3.58 2.7.8 1.3.59 2.7.9 1.3.60 2.8.0 1.3.61 2.8.1 1.3.62 2.8.2 1.3.63 2.8.3 1.3.64 2.8.4 1.3.65 2.8.5 1.3.66 2.8.6 1.3.67 2.8.7 1.3.68 2.8.8 1.3.69 2.8.9 1.3.70 2.9.0 1.3.71 2.9.1 1.3.72 2.9.2 1.3.73 2.9.3 1.3.74 2.9.4 1.3.75 2.9.5 1.3.76 2.9.6 1.3.77 2.9.7 1.3.78 2.9.8 1.3.79 2.9.9 1.3.80 3.0.0 1.3.81 3.0.1 1.3.82 3.0.2 1.3.83 3.0.3 1.3.84 3.0.4 1.3.85 3.0.5 1.3.86 3.0.6 1.3.87 3.0.7 1.3.88 3.0.8 1.3.89 3.0.9 1.3.90 3.1.0 1.3.91 3.1.1 1.3.92 3.1.2 1.3.93 3.1.3 1.3.94 3.1.4 1.3.95 3.1.5 1.3.96 3.1.6 1.3.97 3.1.7 1.3.98 3.1.8 1.3.99 3.1.9 1.4.0 3.2.0 1.4.1 3.2.1 1.4.2 3.2.2 1.4.3 3.2.3 1.4.4 3.2.4 1.4.5 3.2.5 1.4.6 3.2.6 1.4.7 3.2.7 1.4.8 3.2.8 1.4.9 3.2.9 1.5.0 3.3.0 1.5.1 3.3.1 1.5.2 3.3.2 1.5.3 3.3.3 1.5.4 3.3.4 1.5.5 3.3.5 1.5.6 3.3.6 1.5.7 3.3.7 1.5.8 3.3.8 1.5.9 3.3.9 1.6.0 3.4.0 1.6.1 3.4.1 1.6.2 3.4.2 1.6.3 3.4.3 1.6.5 3.4.4 1.6.51 3.4.5 1.6.52 3.4.6 1.6.53 1.6.54 1.6.55 1.6.56 1.6.57 1.6.58 1.6.59 1.6.60 1.6.61 1.6.62 1.6.63 1.6.64 1.6.65 1.6.66 1.6.67 1.6.68 trunk 1.6.69 0.0.1 1.6.70 0.0.2 1.6.71 0.0.3 1.6.72 0.0.4 1.6.73 0.0.5 1.6.74 0.0.6 1.6.75 0.0.7 1.6.76 0.0.8 1.6.77 0.0.9 1.6.78 0.1.0 1.6.79 0.1.1 1.6.81 0.1.2 1.6.82 0.1.3 1.6.83 0.1.4 1.6.84 0.1.5 1.6.85 0.1.6 1.6.86 0.1.7 1.6.87 0.1.8 1.6.88 0.1.9 1.6.89 0.2.0 1.6.90
ai-engine / labs / realtime.php
ai-engine / labs Last commit date
mcp.conf 1 year ago mcp.js 1 year ago mcp.md 1 year ago mcp.php 1 year ago mcp_core.php 1 year ago mcp_rest.php 1 year ago oauth.php 1 year ago realtime.php 1 year ago
realtime.php
125 lines
1 <?php
2 //require_once(dirname(__FILE__) . '/../../../wp-load.php');
3
4 $wpLoad = dirname(__FILE__) . 'wp-load.php';
5 echo $wpLoad;
6 require_once(dirname(__FILE__) . './wp-load.php');
7
8 // WebSocket server settings
9 $host = '0.0.0.0'; // Bind to all IPs (adjust as necessary)
10 $port = 8080; // Port for WebSocket server (adjust as necessary)
11
12 // Create a WebSocket server socket
13 $server = stream_socket_server("tcp://$host:$port", $errno, $errstr);
14
15 if (!$server) {
16 die("Error creating server: $errstr ($errno)\n");
17 }
18
19 echo "WebSocket server started at $host:$port\n";
20
21 $clients = [];
22
23 // Main loop to accept incoming WebSocket connections and handle messages
24 while (true) {
25 // Prepare an array of streams to check for new activity
26 $read = array_merge([$server], $clients);
27 $write = null;
28 $except = null;
29
30 if (stream_select($read, $write, $except, null) > 0) {
31 // Check for new connections
32 if (in_array($server, $read)) {
33 $client = stream_socket_accept($server);
34
35 if ($client) {
36 // Perform WebSocket handshake
37 $request = fread($client, 1024);
38 preg_match('#Sec-WebSocket-Key: (.*)\r\n#', $request, $matches);
39 $key = base64_encode(pack('H*', sha1($matches[1] . '258EAFA5-E914-47DA-95CA-C5AB0DC85B11')));
40
41 $handshakeResponse =
42 "HTTP/1.1 101 Switching Protocols\r\n" .
43 "Upgrade: websocket\r\n" .
44 "Connection: Upgrade\r\n" .
45 "Sec-WebSocket-Accept: $key\r\n\r\n";
46
47 fwrite($client, $handshakeResponse);
48 $clients[] = $client;
49
50 echo "New client connected!\n";
51
52 // Send welcome message to the client
53 $site_name = get_bloginfo('name');
54 $welcome_message = "Welcome to $site_name server";
55 $response = encodeWebSocketData($welcome_message);
56 fwrite($client, $response);
57 }
58
59 unset($read[array_search($server, $read)]);
60 }
61
62 // Handle existing client messages
63 foreach ($read as $client) {
64 $data = fread($client, 1024);
65
66 if (!$data) {
67 fclose($client);
68 unset($clients[array_search($client, $clients)]);
69 echo "Client disconnected.\n";
70 continue;
71 }
72
73 // Decode WebSocket message
74 $decodedData = decodeWebSocketData($data);
75 echo "Received: $decodedData\n";
76
77 // Echo back the message to the client
78 $response = encodeWebSocketData("Echo: $decodedData");
79 fwrite($client, $response);
80 }
81 }
82 }
83
84 // Function to decode WebSocket frame
85 function decodeWebSocketData($data) {
86 $unmaskedPayload = '';
87 $decodedData = unpack('H*', $data);
88 $bytes = $decodedData[1];
89
90 $mask = [
91 hexdec(substr($bytes, 4, 2)),
92 hexdec(substr($bytes, 6, 2)),
93 hexdec(substr($bytes, 8, 2)),
94 hexdec(substr($bytes, 10, 2))
95 ];
96
97 $data = substr($bytes, 12);
98 for ($i = 0; $i < strlen($data); $i += 2) {
99 $unmaskedPayload .= chr($mask[($i / 2) % 4] ^ hexdec(substr($data, $i, 2)));
100 }
101
102 return $unmaskedPayload;
103 }
104
105 // Function to encode WebSocket frame
106 function encodeWebSocketData($data) {
107 $frame = [];
108 $frame[0] = 129;
109 $length = strlen($data);
110
111 if ($length <= 125) {
112 $frame[1] = $length;
113 } else if ($length >= 126 && $length <= 65535) {
114 $frame[1] = 126;
115 $frame[2] = ($length >> 8) & 255;
116 $frame[3] = $length & 255;
117 }
118
119 for ($i = 0; $i < $length; $i++) {
120 $frame[] = ord($data[$i]);
121 }
122
123 return call_user_func_array('pack', array_merge(['C*'], $frame));
124 }
125