public function onMessageReceived(SocketServer $server, SocketClient $sender, $message) { if (!$sender->verified) { $cookies = $this->parseCookies(@$sender->headers['Cookie'] ?: ""); $sender->verified = $this->auth($cookies); if (!$sender->verified) { $sender->send(array('type' => 'error', 'error' => 'Auth failed')); $sender->disconnect(); return; } } echo "MESSAGE DATA: " . $message . "\n"; $data = json_decode($message); if ($data) { if ($data->type == 'kill' && $sender->process) { $sender->process->stop(); } elseif ($data->type == 'shell' && $data->cmd) { if ($sender->process) { $sender->process->stop(); usleep(1000 * 10); } $process = new Process($data->cmd); $process->start(function ($type, $buffer) use($sender) { if (Process::ERR !== $type) { $sender->buffer = $sender->buffer ?: ""; $sender->buffer .= $buffer; } else { } }); $sender->process = $process; } } }
function action_deletemsg() { if (!isset($_COOKIE['username'])) { header("Location: /"); die; } $this->model = new ModelMessage($_POST['msgid'], $_COOKIE['username'], null, 1, null, null); $res = $this->model->deleteMessage(); if ($res) { echo 'success'; $arr = array('action' => 'deletemsg', 'user' => $_COOKIE['username'], 'msgid' => $_POST['msgid']); $message = json_encode($arr); $sock = new SocketClient(); $sock->connect('localhost', 8000, '/'); $sock->sendData($message); $sock->disconnect(); } }
<?php require_once 'SocketClient.php'; /* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ $sock = new SocketClient(); $sock->connect('localhost', 8000, '/'); $sock->sendData('test'); $sock->disconnect();