Hi,
ich habe lokal das Ganze soweit zum Laufen gebracht, jedoch wird mir in Opera (userID 2) immer die eigenen Nachricht zugestellt, obwohl diese eigentlich nur an den anderne Benutzer gehen sollte. In Chrome (userID 1) funktioniert das Ganze jedoch.
Nachricht von Chrome absenden und empfangen in Opera:
Code
nodePush Push: {"message":"de.cwalz.cChat","target":{"users":[2]},"payload":[]} +9s
nodePush de.cwalz.cChat -> {"users":[2]} +0ms
socket.io-parser encoding packet {"type":2,"data":["de.cwalz.cChat",[]],"nsp":"/"} +9s
socket.io-parser encoded {"type":2,"data":["de.cwalz.cChat",[]],"nsp":"/"} as 2["de.cwalz.cChat",[]] +0ms
socket.io:client writing packet ["2[\"de.cwalz.cChat\",[]]"] +9s
engine:socket sending packet "message" (2["de.cwalz.cChat",[]]) +8s
engine:socket flushing buffer to transport +0ms
engine:ws writing "42["de.cwalz.cChat",[]]" +0ms
Code
1589692997.104011 [0 127.0.0.1:59586] "PUBLISH" "e6a86f39-e1e6-4e9e-9b8a-fd461850ada4:nodePush" "{\"message\":\"de.cwalz.cChat\",\"target\":{\"users\":[2]},\"payload\":[]}"
Nachricht von Opera absenden und empfangen in Chrome und Opera (falsch):
Code
nodePush Push: {"message":"de.cwalz.cChat","target":{"users":{"1":1}},"payload":[]} +45s
nodePush de.cwalz.cChat -> {"users":{"1":1}} +1ms
socket.io-parser encoding packet {"type":2,"data":["de.cwalz.cChat",[]],"nsp":"/"} +45s
socket.io-parser encoded {"type":2,"data":["de.cwalz.cChat",[]],"nsp":"/"} as 2["de.cwalz.cChat",[]] +0ms
socket.io:client writing packet ["2[\"de.cwalz.cChat\",[]]"] +45s
engine:socket sending packet "message" (2["de.cwalz.cChat",[]]) +2s
engine:socket flushing buffer to transport +0ms
engine:ws writing "42["de.cwalz.cChat",[]]" +0ms
socket.io:client writing packet ["2[\"de.cwalz.cChat\",[]]"] +1ms
engine:socket sending packet "message" (2["de.cwalz.cChat",[]]) +1ms
engine:socket flushing buffer to transport +0ms
engine:ws writing "42["de.cwalz.cChat",[]]" +0ms
Alles anzeigen
Code
1589693091.551276 [0 127.0.0.1:59732] "PUBLISH" "e6a86f39-e1e6-4e9e-9b8a-fd461850ada4:nodePush" "{\"message\":\"de.cwalz.cChat\",\"target\":{\"users\":{\"1\":1}},\"payload\":[]}"
Code:
JavaScript
require([ 'Bastelstu.be/_Push' ], function (Push) {
Push
.onConnect(function () { console.log('CONNECT') })
.catch(function (err) { console.log(err) })
Push
.onDisconnect(function () { console.log('DISCONNECT') })
.catch(function (err) { console.log(err) })
Push.onMessage('de.cwalz.cChat', function (data) {
console.log('World!', data)
}).catch(function (err) { console.log(err) })
})
Alles anzeigen
PHP
$participants = $conversation->getParticipantIDs(true);
if (($key = array_search(WCF::getUser()->userID, $participants)) !== false) {
// delete current user
unset($participants[$key]);
}
PushHandler::getInstance()->sendMessage([
'message' => 'de.cwalz.cChat',
'target' => [
'users' => $participants
]
]);
Alles anzeigen