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č ?