PluginProbe ʕ •ᴥ•ʔ
AI Engine – The Chatbot, AI Framework & MCP for WordPress / 3.1.7
AI Engine – The Chatbot, AI Framework & MCP for WordPress v3.1.7
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-core.php 8 months ago mcp-rest.php 1 year ago mcp.conf 1 year ago mcp.js 8 months ago mcp.md 8 months ago mcp.php 8 months ago oauth.php 9 months ago realtime.php 1 year ago
realtime.php
127 lines
1 <?php
2
3 //require_once(dirname(__FILE__) . '/../../../wp-load.php');
4
5 $wpLoad = dirname( __FILE__ ) . 'wp-load.php';
6 echo $wpLoad;
7 require_once( dirname( __FILE__ ) . './wp-load.php' );
8
9 // WebSocket server settings
10 $host = '0.0.0.0'; // Bind to all IPs (adjust as necessary)
11 $port = 8080; // Port for WebSocket server (adjust as necessary)
12
13 // Create a WebSocket server socket
14 $server = stream_socket_server( "tcp://$host:$port", $errno, $errstr );
15
16 if ( !$server ) {
17 die( "Error creating server: $errstr ($errno)\n" );
18 }
19
20 echo "WebSocket server started at $host:$port\n";
21
22 $clients = [];
23
24 // Main loop to accept incoming WebSocket connections and handle messages
25 while ( true ) {
26 // Prepare an array of streams to check for new activity
27 $read = array_merge( [$server], $clients );
28 $write = null;
29 $except = null;
30
31 if ( stream_select( $read, $write, $except, null ) > 0 ) {
32 // Check for new connections
33 if ( in_array( $server, $read ) ) {
34 $client = stream_socket_accept( $server );
35
36 if ( $client ) {
37 // Perform WebSocket handshake
38 $request = fread( $client, 1024 );
39 preg_match( '#Sec-WebSocket-Key: (.*)\r\n#', $request, $matches );
40 $key = base64_encode( pack( 'H*', sha1( $matches[1] . '258EAFA5-E914-47DA-95CA-C5AB0DC85B11' ) ) );
41
42 $handshakeResponse =
43 "HTTP/1.1 101 Switching Protocols\r\n" .
44 "Upgrade: websocket\r\n" .
45 "Connection: Upgrade\r\n" .
46 "Sec-WebSocket-Accept: $key\r\n\r\n";
47
48 fwrite( $client, $handshakeResponse );
49 $clients[] = $client;
50
51 echo "New client connected!\n";
52
53 // Send welcome message to the client
54 $site_name = get_bloginfo( 'name' );
55 $welcome_message = "Welcome to $site_name server";
56 $response = encodeWebSocketData( $welcome_message );
57 fwrite( $client, $response );
58 }
59
60 unset( $read[array_search( $server, $read )] );
61 }
62
63 // Handle existing client messages
64 foreach ( $read as $client ) {
65 $data = fread( $client, 1024 );
66
67 if ( !$data ) {
68 fclose( $client );
69 unset( $clients[array_search( $client, $clients )] );
70 echo "Client disconnected.\n";
71 continue;
72 }
73
74 // Decode WebSocket message
75 $decodedData = decodeWebSocketData( $data );
76 echo "Received: $decodedData\n";
77
78 // Echo back the message to the client
79 $response = encodeWebSocketData( "Echo: $decodedData" );
80 fwrite( $client, $response );
81 }
82 }
83 }
84
85 // Function to decode WebSocket frame
86 function decodeWebSocketData( $data ) {
87 $unmaskedPayload = '';
88 $decodedData = unpack( 'H*', $data );
89 $bytes = $decodedData[1];
90
91 $mask = [
92 hexdec( substr( $bytes, 4, 2 ) ),
93 hexdec( substr( $bytes, 6, 2 ) ),
94 hexdec( substr( $bytes, 8, 2 ) ),
95 hexdec( substr( $bytes, 10, 2 ) )
96 ];
97
98 $data = substr( $bytes, 12 );
99 for ( $i = 0; $i < strlen( $data ); $i += 2 ) {
100 $unmaskedPayload .= chr( $mask[( $i / 2 ) % 4] ^ hexdec( substr( $data, $i, 2 ) ) );
101 }
102
103 return $unmaskedPayload;
104 }
105
106 // Function to encode WebSocket frame
107 function encodeWebSocketData( $data ) {
108 $frame = [];
109 $frame[0] = 129;
110 $length = strlen( $data );
111
112 if ( $length <= 125 ) {
113 $frame[1] = $length;
114 }
115 else if ( $length >= 126 && $length <= 65535 ) {
116 $frame[1] = 126;
117 $frame[2] = ( $length >> 8 ) & 255;
118 $frame[3] = $length & 255;
119 }
120
121 for ( $i = 0; $i < $length; $i++ ) {
122 $frame[] = ord( $data[$i] );
123 }
124
125 return call_user_func_array( 'pack', array_merge( ['C*'], $frame ) );
126 }
127