Websocket wil niet

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Medior Java developer

Wat je gaat doen: Of beter nog, wat wil jij doen? Binnen DPA GEOS zijn we dan ook op zoek naar enthousiaste Java developers om ons development team te versterken. Als Java developer werk je in Agile/Scrum teams bij onze klanten en daarbij kun je eventueel ook andere ontwikkelaars begeleiden in het softwareontwikkelproces. Verder draag je positief bij aan de teamgeest binnen een projectteam en je kijkt verder dan je eigen rol. Je gaat software maken voor verschillende opdrachtgevers in jouw regio. Je bent een professional die het IT-vak serieus neemt en kwaliteit levert. Je leert snel vanwege je diepgaande

Bekijk vacature »

Full Stack Developer/ Applicatie Ontwikkelaar

Wat jij doet Als Applicatie Ontwikkelaar ben je onderdeel van het team die de Rimote omgeving ontwikkeld en onderhoud. Hierbij kan je denk aan de cloud, on premise en webapplicaties welke worden gebruikt in bijvoorbeeld industriële bakkerijen, biogasinstallaties en kwekerijen. Deze applicaties verzorgen (remote) de aansturing en monitoring van processen, machines en robots. Van a tot z ben je betrokken bij projecten. Dit betekent vanaf ontwerp tot oplevering. Je moet samen met jouw team een goed product neer zetten. Dit begint met het opzetten van het ontwerp. De basis van de software moet staan als een huis. Daarvoor moet jij

Bekijk vacature »

Front-end Developer (HTML/CSS, Angular/React/Vue,

Functie Je zal aan de slag gaan in een klein, hecht team met front-end development experts die de ambitie delen mooi werk te leveren. Samen met hen zal je werken aan het gebruiksvriendelijk en interactief maken van complexe webapplicaties, websites en mobile apps. Je levert klanten wat ze nodig hebben terwijl je actief aan jezelf blijft werken met de ondersteuning vanuit je werkplek. Talen als Javascript programmeer jij vloeiend en je hebt kennis van frameworks als React en Angular. Je zou je het liefst nog veel meer ontwikkelen in verschillende front-end talen. Deze kennis deel je graag met je collega’s,

Bekijk vacature »

Senior Front-end developer (React)

Functie Met een ontwikkelafdeling van ruim 20 collega’s is dit zo ongeveer de helft van alle medewerkers. De software(ontwikkeling) is dan ook de drijvende kracht binnen de organisatie. Ze werken aan het verbeteren dan de bestaande, maar zeker ook nieuwe producten. De software bestaat uit verschillende (React) webapplicaties, maar ook een mobile (React native) app. Hierdoor kom je met verschillende uitdagingen in aanraking en is Mobile kennis natuurlijk mooi meegenomen. De software wordt door vele duizenden professionals dagelijks gebruikt en bevatten grote hoeveelheden data. Aan het team de uitdaging om hierin de best mogelijke gebruiksvriendelijkheid neer te zetten door gebruik

Bekijk vacature »

Ervaren PHP ontwikkelaar

Functie Jij als PHP ontwikkelaar komt te werken in een team van 4 andere PHP ontwikkelaars. Je zult je voornamelijk bezig houden met: – Het ontwikkelen van nieuwe features – Doorontwikkelen van de API – Nadenken over de technische infrastructuur – Datakwaliteit Samen met het team ben jij verantwoordelijk voor de verdere ontwikkeling van de software en om de positie als marktleider in Europa te behouden. Ze werken volgens SCRUM in 2 wekelijkse sprints, werken met Jira voor alle tickets en communiceren veel via Slack. Eisen • Minimaal 3 jaar ervaring als back end developer • Je hebt affiniteit met

Bekijk vacature »

Dynamics Ontwikkelaar

Dit ga je doen Ontwikkelen van Dynamics 365 voor de interne uitrol; Samen met de consultants sparren met klanten over de wensen en eisen; Ontwikkelen van Dynamics 365 voor verschillende grote klanten; Technische analyse en testen; Meedenken over het gebruik en de richting van Dynamics binnen de organisatie. Hier ga je werken Onze opdrachtgever, gevestigd in regio Eindhoven, levert een compleet dienstenpakket op het gebied van IT. Zij pakken verschillende (complexe) vraagstukken van grote organisaties op. De sfeer intern is gezellig en informeel. Men houdt van hard werken maar gezelligheid door middel van een borrel of gezamenlijke lunch komt er

Bekijk vacature »

C#.NET developer

Functieomschrijving Wij zijn op zoek naar een gepassioneerde Full Stack C#.NET Software Developer. Als Software Developer ben je verantwoordelijk voor het ontwikkelen van webapplicaties, apps en dashboards voor de eigen IOT-oplossingen. Je werkt samen met andere ontwikkelaars en engineers om de sensoren in machines uit te lezen en deze data om te zetten in management informatie voor jullie klanten. Taken en verantwoordelijkheden: Testen en valideren van de ontwikkelde software. Ontwikkelen en onderhouden van webapplicaties, apps en dashboards voor de eigen IOT-oplossingen. Je gaat aan de slag met diverse technologieën en frameworks. Denk hierbij aan C#, JS frameworks, HTML, CSS, TypeScript,

Bekijk vacature »

.NET Developer

Functie omschrijving In deze functie ga je werken als C# Developer. Jij gaat aan de slag met de volgende taken: Maatwerk software bouwen; Huidige softwareprojecten verder uitbouwen en optimaliseren; Ideeën van de klant omzetten naar handige oplossingen en tools; Bovenstaande doe je middels de Microsoft- stack: C#, ASP.NET en MVC/ Entity Framework. Ben je net afgestudeerd aan een HBO opleiding Informatica, aarzel dan niet om te solliciteren. Dit is namelijk de ideale startersfunctie! Bedrijfsprofiel Deze organisatie is gevestigd in de regio van Boxtel. Het is van oorsprong een familiebedrijf, die gestart zijn met het bouwen van websites. Dit is door

Bekijk vacature »

Medior/senior Fullstack developer

Functie Onder begeleiding van 3 accountmanagers waarvan er 1 binnen jouw expertise je aanspreekpunt zal zijn ga je aan de slag bij diverse opdrachtgevers. Hij of zij helpt je bij het vinden van een passende en uitdagende opdracht. Hierin houden ze uiteraard rekening met jouw situatie, ervaring en (technische) ambities. De opdrachten duren gemiddeld één tot 2 jaar. Hierdoor kun je je ook echt vastbijten in een project en als consultant impact maken. Naast de opdracht ben je regelmatig met je collega’s van de IT-afdeling om bijvoorbeeld onderlinge kennis te delen, of nieuwe trends te bespreken. Ook worden er regelmatig

Bekijk vacature »

Ervaren Magento developer gezocht!

Functie Je komt te werken in een zelfsturend team waarin vertrouwen voorop staat en inbreng en ideeën worden gewaardeerd. Ook staat innovatie centraal. Ze bieden jou de mogelijkheid om jezelf door te ontwikkelen. Denk hierbij aan cursussen en een persoonlijk ontwikkelplan. Je komt terecht in het team van momenteel 4 (ervaren) collega’s en zal meewerken aan de doorontwikkeling en nieuwbouw van de Magento platformen van meerdere opdrachtgevers volgens Agile/Scrum. Denk hierbij aan nieuwe functionaliteiten, UX en koppelingen met verschillende back-end systemen. Als ervaren developer zul je hiernaast ook andere developers assisteren en waar nodig de leiding nemen in het project.

Bekijk vacature »

Medior/Senior Python developer (Django)

Functie Je komt te werken in het IT-team bestaande uit de Lead developer en 4 (medior/senior) developers. Gezamenlijk werken jullie aan de verbetering en uitbreiding van de software. Binnen het development team is er veel vrijheid en zelfstandigheid, zonder dat ze hiermee afdoen aan de kwaliteit. Zo hebben ze elke ochtend een korte stand-up (10:00 uur) en werken ze met pair-programming sessies. Ook is er een hele professionele ontwikkelcyclus waarbij code altijd eerst door een collega wordt getest voordat het naar deployement gaat. Er is een kwaliteitsfocus en dan biedt ruimte om verbeteringen echt door te voeren binnen de gehele

Bekijk vacature »

Low Code Developer voor o.a. overheidsprojecten!

Bedrijfsomschrijving Wil jij ook behoren tot de specialist in Low Code? Dan zou ik zeker aanraden om verder te lezen. Deze organisatie is ooit opgericht door twee studenten en is inmiddels uitgegroeid tot een serieuze werkgever met een groot aanzien op Low Code projecten. De sfeer is echter niet veranderd, er heerst een informele sfeer met een open deuren beleid, en hierin mag de eigen bar natuurlijk niet ontbreken. Momenteel maakt deze organisatie een flinke groei door en hier kan jij natuurlijk niet bij ontbreken. Daarom ben ik op zoek naar Low Code Developers met een degelijke technische achtergrond. Kennis

Bekijk vacature »

Senior Front end developer Digital Agency

Functie Jij als Front end developer komt te werken in een van de 8 multidisciplinaire teams binnen de organisatie. Deze teams werken op basis van Scrum agile in 2 wekelijkse sprints. De grootte van de teams varieert van 9-14 collega’s en bestaan altijd uit één of meerdere project managers en een project manager. Samen met je team werk je aan verschillende projecten voor uiteenlopende klanten zoals grote multinationals tot het kleine mkb. De stack waarmee gewerkt wordt is voornamelijk Javascript, ES6, Es.next, HTML, CSS, React.js en Node.js. Wat deze organisatie onderscheid is dat ze echt langdurige partnerships aangaan met hun

Bekijk vacature »

Airport Developer / System engineer

De functie Als onze nieuwe Airport Developer / System Engineer is je doel om uit nieuwbouw- en onderhoudsprojecten maximale waarde te creëren voor Schiphol Group en haar stakeholders. Vanuit je visie en expertise, maar ook (technologische) ontwikkelingen, wetgeving en beleid vertaal je klantwensen naar een gedegen programma van eisen. In de planontwikkelingsfase werk je nauw samen met Plan Ontwikkelaars om je kennis in te brengen ten behoeve van de kwaliteit van het investeringsvoorstel. Je overlegt met diverse partijen, stelt de vraag achter de vraag en verbindt zo de belangen van de luchthaven, proceseigenaar en asseteigenaar om tot een gedragen ontwikkelopgave

Bekijk vacature »

Java developer (remote)

Functie Wat ga je doen als Java Developer? Jij als Java ontwikkelaar komt te werken in 1 van onze SCRUM teams. Momenteel werken er zo’n 30 ontwikkelaars binnen onze organisatie waarbij jij de brug slaat tussen het bouwen van verschillende functionaliteiten binnen onze applicaties en deze vervolgens te integreren in onze centrale hub. Je start je dag om 9 uur met een stand up en dan pak je jouw taken op voor de dag. Hieronder een aantal taken die jij zal uitvoeren: – Het bedenken en uitbouwen van features binnen de verschillende applicaties – Onderhouden van CI/CD pipelines – Bezighouden

Bekijk vacature »
Pipo Clown

Pipo Clown

29/12/2013 20:13:59
Quote Anchor link
Ik ben aan het proberen om met websocket te werken maar op de één of andere vage manier wil dit nog niet lukken.

Ik probeer een voorbeeld te volgen vanaf deze pagina :
http://www.sanwebe.com/2013/05/chat-using-websocket-php-socket

Ik heb de bestanden gedownload en, volgens mij, op de juiste wijze aangepast.

index.php :
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
<!DOCTYPE html>
<html>
<head>
<meta charset='UTF-8' />
<style type="text/css">
<!--
.chat_wrapper {
    width: 500px;
    margin-right: auto;
    margin-left: auto;
    background: #CCCCCC;
    border: 1px solid #999999;
    padding: 10px;
    font: 12px 'lucida grande',tahoma,verdana,arial,sans-serif;
}
.chat_wrapper .message_box {
    background: #FFFFFF;
    height: 150px;
    overflow: auto;
    padding: 10px;
    border: 1px solid #999999;
}
.chat_wrapper .panel input{
    padding: 2px 2px 2px 5px;
}
.system_msg{color: #BDBDBD;font-style: italic;}
.user_name{font-weight:bold;}
.user_message{color: #88B6E0;}
-->
</style>
</head>
<body>    
<?php
$colours
= array('007AFF','FF7000','FF7000','15E25F','CFC700','CFC700','CF1100','CF00BE','F00');
$user_colour = array_rand($colours);
?>


<script src="//ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script>

<script language="javascript" type="text/javascript">  
$(document).ready(function(){
    //create a new WebSocket object.
    var wsUri = "ws://localhost:9000/chattest/server.php";     
    websocket = new WebSocket(wsUri);
    
    websocket.onopen = function(ev) { // connection is open
        $('#message_box').append("<div class=\"system_msg\">Connected!</div>"); //notify user
    }

    $('#send-btn').click(function(){ //use clicks message send button    
        var mymessage = $('#message').val(); //get message text
        var myname = $('#name').val(); //get user name
        
        if(myname == ""){ //empty name?
            alert("Enter your Name please!");
            return;
        }
        if(mymessage == ""){ //emtpy message?
            alert("Enter Some message Please!");
            return;
        }
        
        //prepare json data
        var msg = {
        message: mymessage,
        name: myname,
        color : '<?php echo $colours[$user_colour]; ?>'
        };
        //convert and send data to server
        websocket.send(JSON.stringify(msg));
    });
    
    //#### Message received from server?
    websocket.onmessage = function(ev) {
        var msg = JSON.parse(ev.data); //PHP sends Json data
        var type = msg.type; //message type
        var umsg = msg.message; //message text
        var uname = msg.name; //user name
        var ucolor = msg.color; //color

        if(type == 'usermsg')
        {
            $('#message_box').append("<div><span class=\"user_name\" style=\"color:#"+ucolor+"\">"+uname+"</span> : <span class=\"user_message\">"+umsg+"</span></div>");
        }
        if(type == 'system')
        {
            $('#message_box').append("<div class=\"system_msg\">"+umsg+"</div>");
        }
        
        $('#message').val(''); //reset text
    };
    
    websocket.onerror    = function(ev){$('#message_box').append("<div class=\"system_error\">Error Occurred - "+ev.data+"</div>");};
    websocket.onclose     = function(ev){$('#message_box').append("<div class=\"system_msg\">Connection Closed</div>");};
});
</script>
<div class="chat_wrapper">
<div class="message_box" id="message_box"></div>
<div class="panel">
<input type="text" name="name" id="name" placeholder="Your Name" maxlength="10" style="width:20%"  />
<input type="text" name="message" id="message" placeholder="Message" maxlength="80" style="width:60%" />
<button id="send-btn">Send</button>
</div>
</div>

</body>
</html>


server.php :
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
<?php
$host
= 'localhost'; //host
$port = '9000'; //port
$null = NULL; //null var

//Create TCP/IP sream socket

$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
//reuseable port
socket_set_option($socket, SOL_SOCKET, SO_REUSEADDR, 1);

//bind socket to specified host
socket_bind($socket, 0, $port);

//listen to port
socket_listen($socket);

//create & add listning socket to the list
$clients = array($socket);

//start endless loop, so that our script doesn't stop
while (true) {
    //manage multipal connections
    $changed = $clients;
    //returns the socket resources in $changed array
    socket_select($changed, $null, $null, 0, 10);
    
    //check for new socket
    if (in_array($socket, $changed)) {
        $socket_new = socket_accept($socket); //accpet new socket
        $clients[] = $socket_new; //add socket to client array
        
        $header = socket_read($socket_new, 1024); //read data sent by the socket
        perform_handshaking($header, $socket_new, $host, $port); //perform websocket handshake
        
        socket_getpeername($socket_new, $ip); //get ip address of connected socket
        $response = mask(json_encode(array('type'=>'system', 'message'=>$ip.' connected'))); //prepare json data
        send_message($response); //notify all users about new connection
        
        //make room for new socket

        $found_socket = array_search($socket, $changed);
        unset($changed[$found_socket]);
    }

    
    //loop through all connected sockets
    foreach ($changed as $changed_socket) {    
        
        //check for any incomming data
        while(socket_recv($changed_socket, $buf, 1024, 0) >= 1)
        {

            $received_text = unmask($buf); //unmask data
            $tst_msg = json_decode($received_text); //json decode
            $user_name = $tst_msg->name; //sender name
            $user_message = $tst_msg->message; //message text
            $user_color = $tst_msg->color; //color
            
            //prepare data to be sent to client

            $response_text = mask(json_encode(array('type'=>'usermsg', 'name'=>$user_name, 'message'=>$user_message, 'color'=>$user_color)));
            send_message($response_text); //send data
            break 2; //exist this loop
        }
        
        $buf = @socket_read($changed_socket, 1024, PHP_NORMAL_READ);
        if ($buf === false) { // check disconnected client
            // remove client for $clients array

            $found_socket = array_search($changed_socket, $clients);
            socket_getpeername($changed_socket, $ip);
            unset($clients[$found_socket]);
            
            //notify all users about disconnected connection
            $response = mask(json_encode(array('type'=>'system', 'message'=>$ip.' disconnected')));
            send_message($response);
        }
    }
}

// close the listening socket
socket_close($sock);

function
send_message($msg)
{

    global $clients;
    foreach($clients as $changed_socket)
    {
        @
socket_write($changed_socket,$msg,strlen($msg));
    }

    return true;
}



//Unmask incoming framed message
function unmask($text) {
    $length = ord($text[1]) & 127;
    if($length == 126) {
        $masks = substr($text, 4, 4);
        $data = substr($text, 8);
    }

    elseif($length == 127) {
        $masks = substr($text, 10, 4);
        $data = substr($text, 14);
    }

    else {
        $masks = substr($text, 2, 4);
        $data = substr($text, 6);
    }

    $text = "";
    for ($i = 0; $i < strlen($data); ++$i) {
        $text .= $data[$i] ^ $masks[$i%4];
    }

    return $text;
}


//Encode message for transfer to client.
function mask($text)
{

    $b1 = 0x80 | (0x1 & 0x0f);
    $length = strlen($text);
    
    if($length <= 125)
        $header = pack('CC', $b1, $length);
    elseif($length > 125 && $length < 65536)
        $header = pack('CCn', $b1, 126, $length);
    elseif($length >= 65536)
        $header = pack('CCNN', $b1, 127, $length);
    return $header.$text;
}


//handshake new client.
function perform_handshaking($receved_header,$client_conn, $host, $port)
{

    $headers = array();
    $lines = preg_split("/\r\n/", $receved_header);
    foreach($lines as $line)
    {

        $line = chop($line);
        if(preg_match('/\A(\S+): (.*)\z/', $line, $matches))
        {

            $headers[$matches[1]] = $matches[2];
        }
    }


    $secKey = $headers['Sec-WebSocket-Key'];
    $secAccept = base64_encode(pack('H*', sha1($secKey . '258EAFA5-E914-47DA-95CA-C5AB0DC85B11')));
    //hand shaking header
    $upgrade  = "HTTP/1.1 101 Web Socket Protocol Handshake\r\n" .
    "Upgrade: websocket\r\n" .
    "Connection: Upgrade\r\n" .
    "WebSocket-Origin: $host\r\n" .
    "WebSocket-Location: ws://$host:$port/chattest/server.php\r\n".
    "Sec-WebSocket-Accept:$secAccept\r\n\r\n";
    socket_write($client_conn,$upgrade,strlen($upgrade));
}

?>


Om de server te starten gebruik ik het volgende php-bestand :
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
    shell_exec('php -q c:/xampp/htdocs/chattest/server.php 2>&1 > /dev/null &');
?>


Als server draai ik XAMPP onder Windows8-64 bit, hier heb ik onder de directory 'htdocs' een subdirectory 'chattest' aangemaakt waar bovenstaande 3 php bestanden in staan.

Nadat in index.php gestart heb krijg ik de foutmelding 'Error Occurred - undefined'.

Zelf ben ik er vrij zeker van dat het server deel niet opgestart wordt, ik begrijp alleen niet waarom. Wie helpt mij om dit aan de praat te krijgen ?

Alvast bedankt.
Gewijzigd op 29/12/2013 20:23:54 door Pipo Clown
 
PHP hulp

PHP hulp

27/05/2026 03:00:27
 
Christian k

christian k

29/12/2013 21:54:57
Quote Anchor link
Heb je de socket wel geinstalleert?
 
Pipo Clown

Pipo Clown

29/12/2013 22:20:00
Quote Anchor link
Volgens mij wel.

Dit doe ik toch door eenmalig het volgende stukje PHP-code aan te roepen :

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
    shell_exec('php -q c:/xampp/htdocs/chattest/server.php 2>&1 > /dev/null &');
?>
 
Christian k

christian k

30/12/2013 10:35:03
Quote Anchor link
Ik weet het niet hoe dat met windows werkt maar op ubuntu moest je
Wat comandos in de terminal intypen
 
Pipo Clown

Pipo Clown

31/12/2013 15:30:21
Quote Anchor link
Op mijn localhost heb ik het nu daaiende, dit doordat ik daar de XAMPP-Shell kon gebruiken.

De volgende stap is om het op de NAS aan de praat te krijgen, geen idee hoe ik daar een Shell kan gebruiken.

Ik heb nu onderstaande code welke ik eenmalig aan roep, deze code staat in een php-bestandje dat in dezelfde map staat als server.php en index.php :

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
    $result
= exec("php -q ".getcwd()."/server.php 2>&1");
    echo $result;
?>


Het resultaat hiervan is :

"sh: php: command not found"

Wie kan mij vrtellen hoe ik PHP hier bereikbaar krijg ?
 
- Ariën  -
Beheerder

- Ariën -

31/12/2013 15:35:19
Quote Anchor link
Kijk eens met phpinfo() waar PHP geinstalleerd is, en gebruik dat path i.p.v. 'php'
 
Pipo Clown

Pipo Clown

31/12/2013 17:26:55
Quote Anchor link
Ik heb ondertussen de volgende code :

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
<?php
echo getcwd().'/server.php<br><br>';   // Het huidige path

$php_cmd = PHP_BINDIR.'/php';  //  Het path naar PHP
echo $php_cmd;  //  Het path naar PHP

scandir($php_cmd);  //  Inhoud PHP-directory


    $result = exec($php_cmd." -q ".getcwd()."/server.php 2>&1");
echo $result;

?>


Met als resultaat :

/share/MD0_DATA/Web/midlife-info/chat/server.php (Curr-dir)

/root/daily_build/3.8.x/Model/TS-421/../../NasMgmt/HTTP/php5/bin/php (PHP-dir)

Warning: scandir(/root/daily_build/3.8.x/Model/TS-421/../../NasMgmt/HTTP/php5/bin/php) [function.scandir]: failed to open dir: No such file or directory in /share/MD0_DATA/Web/midlife-info/chat/st.php on line 7 (Foutmelding van scandir)

Scandir lijkt uitgevoerd te worden, net als shell_exec, vanuit de current directory en niet vanuit de root waardoor de PHP-dir niet gevonden kan worden.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.