Ich versuche, Daten (Status) Objekt in dem Präsenzereignis zu erhalten, wie in Pubnub Documentation dokumentiert wird.Pubnub: kann Statusobjekt mit Anwesenheitsereignis nicht abrufen
Hier ist mein Code: -
// Subscribe to messages channel
Pubnub.subscribe({
channel: $scope.channel,
triggerEvents: ['callback','presence','message'],
state: {
username : $scope.username,
membershipType : $scope.membershipType,
memberDealsIn : $scope.memberDealsIn
}
});
//Track online users
Pubnub.here_now({
channel : $scope.channel,
state: true,
callback : function(m){
$scope.$apply(function() {
$scope.onlineUsers.push(m['uuids'])
});
}
});
//User's State
Pubnub.state({
channel : $scope.channel,
state : {
username : $scope.username,
membershipType : $scope.membershipType,
memberDealsIn : $scope.memberDealsIn
},
callback : function(m){
//console.log(m)
},
error : function(m){
//console.log(m)
}
});
ich es von der getPresenceEventNameFor Methode des Pubnub nenne als: -
$scope.$on(Pubnub.getPresenceEventNameFor($scope.channel), function (ngEvent, pnEvent) {
console.log("pnEvent: ", pnEvent);
}
Hier ist meine Ausgabe: -
pnEvent: Object {action: "join", uuid: "1310974", timestamp: 1467719168, occupancy: 3}
Wie Sie können Alles andere ist in Ordnung, aber ich kann keine Daten darin finden. Während die Documentation sagt es zu Daten haben, wie: -
{
"action" : "join",
"timestamp" : 1345546797,
"uuid" : "175c2c67-b2a9-470d-8f4b-1db94f90e39e",
"occupancy" : 2,
"data" : {
"age" : 67,
"full" : "RobertPlant",
"country" : "UK",
"appstate" : "foreground",
"latlong" : "51.5072°N,0.1275°W"
}
}
Ich habe jetzt eine Zeit lang mit dieser Sache stecken geblieben. :(
Bitte sagen Sie mir, was ich falsch hier tue. Warum ist nicht der Zustand in Gegenwart Ereignis gesetzt wird.
Vielen Dank für Ihre Hilfe.
Sie sollten den Status nicht abonnieren, da er nicht immer zu den erwarteten Ergebnissen führt. Stattdessen empfiehlt es sich, zu abonnieren, und wenn der Client ein eigenes Join-Ereignis erhält, legen Sie den Status fest. Dann erhalten Sie das State-Change-Event auf zuverlässige und konsistente Weise. Lassen Sie mich wissen, ob dies Ihr Problem betrifft. Ist dies nicht der Fall, dann senden Sie am besten eine E-Mail an [PubNub Support] (http://pubnub.com/support) mit Details und einem Link zu diesem Thread, damit wir die endgültige Lösung veröffentlichen können. –
Ich verstehe nicht, was Sie mit ** meinen, wenn der Client ein eigenes Join-Ereignis bekommt, setze den Status. ** Ich setze den Status, wenn das Ereignis hier ausgelöst wird. Beim ersten Mal erstelle ich die Online-Benutzerliste durch das Ereignis here_now. Und ich brauche auch State in Präsenz Event, weil ich die Online User Liste nach Präsenz Event neu generiere. Woher soll ich Daten bekommen, wenn ein Benutzer gerade online gegangen ist? Ich denke ich kann neue User vom Presence Event nur richtig erkennen? Also müssen Daten im Präsenz-Event sein. –
Bereitgestellte Details im Support-Ticket. Werde hier zurück posten, wenn wir eine gute Lösung für dich gefunden haben. –