php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > PHP Developer Forum
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Fragen zu Laravel, YII oder anderen PHP-Frameworks.

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 23-01-2013, 00:40
PascalvonHagen
 Registrierter Benutzer
Links : Onlinestatus : PascalvonHagen ist offline
Registriert seit: Jan 2013
Beiträge: 2
PascalvonHagen befindet sich auf einem aufstrebenden Ast
Standard Websocket kleines Problem

Hallo lieber Programmierfreunde,

ich habe mich nun extra hier angemeldet, da ich ein Problem habe, für das ich keine Erklärung finde.

Also zur Sache. Ich habe mich in den letzten Wochen sehr intensiv mit WebSockets beschäftigt. Ich bin nur ein Hobbyprogrammierer und habe mir sämtliches Material aus dem Internet gesucht, das ich brauche. Nun habe ich es tatsächlich endlich hinbekommen einen WebSocket zum laufen zu bringen.
Alleine das hat mich schon einiges an Nerven gekostet .

Ich kann mich über die Console via Telnet auch super verbinden und kann was eintippen was mit Enter dann gesendet wird (PHP_NORMAL_READ).

Der Server erkennt auch wenn neue Benutzer hinzukommen.

Nun zu meinem Problem.

Sobald ich Daten eintippe oder eine neue Verbindung aufbaue, ist mir aufgefallen, dass die WHILE-Schleife, die eigentlich kontinuierlich laufen sollte,
stoppt.

Hier mal mein kleiner Quellcode. Ich hoffe ich bekomme schnell eure Hilfe =)
(mal ebend schnell auskommentiert. Ich hoffe das reicht so)
PHP-Code:
<?php

    
// Fehlermeldung abschalten
    
error_reporting(0);
    
// Laufzeit auf Endlos stellen
    
set_time_limit(0);
        
    class 
websocket
    
{
        private 
$ip '127.0.0.1' ;
        private 
$host 8000 ;

        
// Hier werden alle Socketverbindungen eingetragen
        
private $clients = array();

        function 
__construct()
        {
            
// Socket erzeugen ( Mastersocket )
            
$this->socket socket_create(AF_INET,SOCK_STREAM,SOL_TCP);
            
// Socket mit Namen verbinden
            
socket_bind($this->socket,$this->ip,$this->host);
            
// Auf Verbindungen warten
            
socket_listen($this->socket);

            
// Alle Verbindungen werden hier gespeichert
            
$clients = array($this->socket);

            
// Endlosschleife
            
while(true)
            {

                
sleep(0);

                
$read $clients ;
                
// Veränderung prüfen
                
$change socket_select($read$w NULL$e NULL0);

                
// Prüfen ob es eine neue Verbindung gibt
                
if($change == 1){
                    
// Für den neuen Client seine Socket_ID zuweisen
                    
$new_client count($clients);
                    
// Neuen Client in den Clientarray eintragen
                    
$clients[$new_client] = socket_accept($this->socket);
                    
// In der Konsole ausgeben
                    
echo "#".$new_client." logged in\n" ;
                    
// Bei dem neuem Client ausgeben
                    
socket_write($clients[$new_client], "#".$new_client." logged in\n\r");
                } 

                
// alle clienten durchgehen
                
for($i count($clients); $i>0$i--)
                {
                    foreach(
$clients as $client)
                    {
                        
// Prüfen on Client was geschrieben hat
                        
if($buf socket_read($client,2048,PHP_NORMAL_READ))
                        {
                            
// Wenn mehr als 1 zeichen getippt wurde
                            
if(strlen($buf)>=2)
                            {
                                
// In der Konsole ausgeben
                                
echo $client " sagt " .$buf "\n";
                            }
                        }
                    }
                }

            }

        }

    }
    
$socket = new websocket;
?>
Vielen vielen Dank für eure Hilfe.

PS: Ich nehme extrem gerne Verbesserungsvorschläge entgegen =)
Mit Zitat antworten
  #2 (permalink)  
Alt 23-01-2013, 23:56
PascalvonHagen
 Registrierter Benutzer
Links : Onlinestatus : PascalvonHagen ist offline
Registriert seit: Jan 2013
Beiträge: 2
PascalvonHagen befindet sich auf einem aufstrebenden Ast
Standard

Kann mir denn niemand helfen ? Wäre wirklich dankbar
Mit Zitat antworten
  #3 (permalink)  
Alt 24-01-2013, 13:55
Benutzerbild von ApoY2k ApoY2k
 Registrierter Benutzer
Links : Onlinestatus : ApoY2k ist offline
Registriert seit: Nov 2006
Beiträge: 359
ApoY2k befindet sich auf einem aufstrebenden Ast
ApoY2k eine Nachricht über ICQ schicken ApoY2k eine Nachricht über Skype™ schicken
Standard

PHP-Code:
    // Fehlermeldung abschalten
    
error_reporting(0); 
Allein mit dieser Zeile hast du dich schon disqualifiziert. Wir wärs mit selbst debuggen, bevor man die Arbeit an Fremde abtreten will?
__________________
This is what happens when an unstoppable force meets an immovable object.
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
kleines Problem :( stefanwie PHP Developer Forum 2 09-02-2005 23:55
Kleines Problem Lukaso014 PHP Developer Forum 4 23-03-2004 21:14
Kleines Problem ^EckSteiN^ PHP Developer Forum 2 19-04-2003 12:25
Kleines Problem... CrazyPip PHP Developer Forum 1 29-07-2002 09:06
Kleines Problem Downline SQL / Datenbanken 1 24-11-2001 13:07

Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an


PHP News

Die RIGID-FLEX-Technologie
Die RIGID-FLEX-TechnologieDie sogenannte "Flexible Elektronik" , oftmals auch als "Flexible Schaltungen" bezeichnet, ist eine zeitgemäße Technologie zum Montieren von elektronischen Schaltungen.

06.12.2018 | Berni

ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlicht
ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlichtDie bekannte Marktplatzsoftware ebiz-trader ist in der Version 7.5.0 veröffentlicht worden.

28.05.2018 | Berni


 

Aktuelle PHP Scripte

HeidiSQL - kostenloses MySQL front-end Editor für Windows ansehen HeidiSQL - kostenloses MySQL front-end Editor für Windows

HeidiSQL - ist ein Windows-Editor für die bekannt open Source Datenbank mySQL

10.12.2018 Berni | Kategorie: MYSQL/ Management
piwik Open-Source Webanalyse-Software ansehen piwik Open-Source Webanalyse-Software

piwik ist eine gute Alternative zu Google Analytics. Viele Features und ein modernes Erscheinungsbild mit aussagefähigen Statistiken in Echtzeit

10.12.2018 phpler | Kategorie: PHP/ Besucherzaehler
jQuery Mobile ansehen jQuery Mobile

Touch-Optimized Web Framework für Smartphones & Tablets

09.12.2018 phpler | Kategorie: AJAX/ Framework
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 02:16 Uhr.