Ich versuche, Push-Integration mit PHP und native zmq zu implementieren. Ich habe erfolgreich gesendet meine Nachricht an den Server senden, aber mein Problem ist, ich kann nicht die Nachricht an den Browser mit js Websocket() schieben. Ich sagt WebSocket-Verbindung zu 'ws: //127.0.0.1: 8080 /' ist fehlgeschlagen: Fehler bei der WebSocket-Handshake: Ungültige Statuszeilephp ZMQ Push-Integration über http
hier ist mein Code für Client:
<?php
try {
function send($data) {
$context = new ZMQContext();
$push = new ZMQSocket($context, ZMQ::SOCKET_PUSH);
$push->connect("tcp://localhost:5555");
$push->send($data);
}
if(isset($_POST["username"])) {
$envelope = array(
"from" => "client",
"to" => "owner",
"msg" => $_POST["username"]
);
send(json_encode($envelope)); # send the data to server
}
}
catch(Exception $e) {
echo $e->getMessage();
}
?>
Kunde
hier ist mein Server:
$context = new ZMQContext();
$pull = new ZMQSocket($context, ZMQ::SOCKET_PULL);
$pull->bind("tcp://*:5555"); #this will be my pull socket from client
$push = new ZMQSocket($context, ZMQ::SOCKET_PUSH);
$push->bind("tcp://127.0.0.1:8080"); # this will be the push socket to owner
while(true) {
$data = $pull->recv(); # when I receive the data decode it
$parse_data = json_decode($parse_data);
if($parse_data["to"] == "owner") {
$push->send($parse_data["msg"]); # forward the data to the owner
}
printf("Recieve: %s.\n", $data);
}
und hier ist mein owner.php ich erwarte die Daten durch Websocket in Browser senden werden:
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
<h2>Message</h2>
<ul id="messagelog">
</ul>
<script>
var logger = document.getElementById("messagelog");
var conn = new WebSocket("ws://127.0.0.1:8080"); # the error is pointing here.
conn.onOpen = function(e) {
console.log("connection established");
}
conn.onMessage = function(data) {
console.log("recieved: ", data);
}
conn.onError = function(e) {
console.log("connection error:", e);
}
conn.onClose = function(e) {
console.log("connection closed~");
}
</script>
</body>
Bitte Sag mir, was ich vermisse. Danke.