Anonymní profil Ellke – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Anonymní profil Ellke – Programujte.comAnonymní profil Ellke – Programujte.com

 

Příspěvky odeslané z IP adresy 2a00:1028:83d8:4c26:552d:94c7:ee89:3b1e...–

Ellke
PHP › Dotaz do mysql
28. 9. 2018   #381771

Moc děkuji nakonec jsem Websocet vyřešil přes nadstavbu Ratchet.

<?php
set_time_limit(0);

use Ratchet\MessageComponentInterface;
use Ratchet\ConnectionInterface;
use Ratchet\Server\IoServer;
use Ratchet\Http\HttpServer;
use Ratchet\WebSocket\WsServer;
require_once 'D:\project\code\www\vendor\autoload.php';

class Chat implements MessageComponentInterface {
	protected $clients;
	protected $users;

	public function __construct() {
		$this->clients = new \SplObjectStorage;
	}

	public function onOpen(ConnectionInterface $conn) {
		$this->clients->attach($conn);
		// $this->users[$conn->resourceId] = $conn;
	}

	public function onClose(ConnectionInterface $conn) {
		$this->clients->detach($conn);
		// unset($this->users[$conn->resourceId]);
	}

	public function onMessage(ConnectionInterface $from,  $data) {
		$data = json_decode($data);
		$type = $data->type;
		switch ($type) {
			case 'refresh':
				
				$response_from = "<span style='color:#999'><b>zkouksa:</b> odpoved </span><br><br>";
			
				// Output
				$from->send(json_encode(array("type"=>$type,"msg"=>$response_from)));
				foreach($this->clients as $client)
				{
					if($from!=$client)
					{
						$client->send(json_encode(array("type"=>$type)));
					}
				}
				break;
		}
	}

	public function onError(ConnectionInterface $conn, \Exception $e) {
		$conn->close();
	}
}
$server = IoServer::factory(
	new HttpServer(new WsServer(new Chat())),
	1024
);
$server->run();
?>

 Proměná $response_from je tam vlastně už k ničemu, použival jsem to jako chat abych to celkově pochopil.

$response_from = "<span style='color:#999'><b>zkouksa:</b> odpoved </span><br><br>";

A client

<textarea id="chat_input" placeholder="Deine Nachricht..."></textarea>
		<script type="text/javascript">
		jQuery(function($){
			// Websocket
			var websocket_server = new WebSocket("ws:\\localhost:1024/");
			websocket_server.onopen = function(e) {
				websocket_server.send(
					JSON.stringify({
						'type':'socket',
						'user_id':<?php echo $session; ?>
					})
				);
			};
			websocket_server.onerror = function(e) {
				// Errorhandling
			}
			websocket_server.onmessage = function(e)
			{
				var json = JSON.parse(e.data);
				switch(json.type) {
					case 'refresh':
						alert("Hello! I am an alert box!");
						break;
				}
			}
			// Events
			$('#chat_input').on('keyup',function(e){
				if(e.keyCode==13 && !e.shiftKey)
				{
					var chat_msg = $(this).val();
					websocket_server.send(
						JSON.stringify({
							'type':'refresh',
							'user_id':<?php echo $session; ?>,
							'chat_msg':chat_msg
						})
					);
					$(this).val('');
				}
			});
		});
		</script>

ale nemám to dořešené pořádně. Ale jsem nadšený že to funguje. 

Děkuji za všechny rady, které jsem tu dostal ten php server je parádní.

Potom jsem se tu přiučil používat https://www.mysql.com/ , ale to bylo vcelku jednoduché.

Měl bych ještě jednu otázku.

PHP jak štak zvládám, ale když bych vzal tuhle aplikaci a udělal jí v c# nebude to lepší než přes webový prohlížeč ?

 

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý