Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- class Messages
- {
- public static $login = "\e[31mPlease enter a username:\r\n\e[39m";
- public static $commands = "\e[32mThe available commands are:\r\n\r\n/send\r\n/receive\r\n/exit\r\n\r\n\e[39m";
- public static $sendDestination = "\e[34mMessage destination:\r\n\e[39m";
- public static $sendMessage = "\e[34mMessage to be sent:\r\n\e[39m";
- public static $receivedBy = "\e[32mSent by: \e[39m";
- public static $receivedMessage = "\e[32mMessage: \e[39m";
- public static $noMessages = "\e[93m\r\n\r\nNo new messages.\r\n\r\n\e[39m";
- public static $ok = "\e[93m\r\n ~~~OK~~~ \r\n\r\n\e[39m";
- public static $no = "\e[31m\r\nThe command was not recognised\r\n\e[39m";
- }
- class Input extends Messages
- {
- public function waitInput()
- {
- $input = fgets(STDIN, 1024);
- $input = rtrim($input, "\n\r");
- return $input;
- }
- public function checkInput($input, $user)
- {
- $actions = new Actions();
- if ($input === '/send') {
- $actions->send($user);
- } elseif ($input === '/receive') {
- $actions->receive($user);
- } elseif ($input === '/exit') {
- exit();
- } else {
- $actions->sandby($user);
- }
- }
- }
- class Actions extends Input
- {
- public function standby($user)
- {
- echo Messages::$commands;
- $inputCommand = Input::waitInput();
- Input::checkInput($inputCommand, $user);
- }
- public function login()
- {
- echo Messages::$login;
- $username = Input::waitInput();
- self::standby($username);
- }
- public function send($user)
- {
- echo Messages::$sendDestination;
- $destination = Input::waitInput();
- echo Messages::$sendMessage;
- $message = Input::waitInput();
- try {
- $stomp = new Stomp('tcp://localhost:61613');
- while (true) {
- $stomp->send($destination, $message, array('sent_by' => $user));
- break;
- }
- } catch (StompException $e) {
- die('Connection error: '.$e);
- }
- self::standby($user);
- }
- public function receive($user)
- {
- $stomp = new Stomp('tcp://127.0.0.1:61613');
- $stomp->subscribe($user);
- while ($stomp->hasFrame()) {
- $frame = $stomp->readFrame();
- if ($frame != null) {
- echo Messages::$receivedBy.$frame->headers['sent_by']."\r\n";
- echo Messages::$receivedMessage.$frame->body."\r\n\r\n\r\n";
- $stomp->ack($frame);
- }
- }
- if (!$stomp->hasFrame()) {
- unset($stomp);
- echo Messages::$noMessages;
- }
- self::standBy($user);
- }
- }
- $start = new Actions();
- $start->login();
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement