小编Cit*_*gic的帖子

Pubnub接收重复的消息

我正在使用PubNub与Backbone和javascript sdk进行应用内聊天.如果我导航到另一个视图并返回聊天窗口,当我发布消息时,我会一式两份地收到它.如果我再次浏览,我会一式三份收到消息,等等.

我想我每次回到聊天页面时都会一次又一次地订阅 - 但是我无法取消订阅工作,我找不到任何有关订阅的文档.

我可以使用支票查看我是否已订阅?

我的代码是:

// INIT
var channel = 'my_channel';
var pubnub  = PUBNUB.init({
subscribe_key : 'demo',
publish_key   : 'demo'
});

function chat(message) {
if (message.uid == "xxx") {
    $("#convo").append('<div class="isaid">' + message.message + '</div><div class="clear clearfix"></div>');
} else {
    $("#convo").append('<div class="hesaid">' + message.message + '</div><div class="clear clearfix"></div>');
}
}

pubnub.history({
channel  : channel, // USER_ID Channel
limit    : 30,      // Load Last 50 Messages
callback : function(msgs) { 
    pubnub.each( msgs[0], chat );
}
});

pubnub.subscribe({
channel: …
Run Code Online (Sandbox Code Playgroud)

javascript pubnub

6
推荐指数
1
解决办法
1966
查看次数

解析 - 在Cloud Code中检查BeforeSave内部的更新

我想检查一下,我没有为事件的参与状态保存重复条目 - 所以在BeforeSave上我正在检查事件rsvp是否尚未输入 - 如果有,我想知道是否需要更新.如果是,我想进行更新而不是创建新的RSVP条目.

这是我的代码 - 即使使用BeforeSave中的简单更新,我似乎也无法使其工作.

Parse.Cloud.beforeSave("Rsvps", function(request, response) {

var eventid = request.object.get("eventid");
var userid = request.object.get("userid");
var rsvp_status = request.object.get("rsvp_status");

var Rsvps = Parse.Object.extend("Rsvps");
var query = new Parse.Query(Rsvps);
query.equalTo("eventid", eventid);
query.equalTo("userid", userid);
query.first({
  success: function(object) {
    if (object) {
        // response.error("An RSVP for this event already exists.");
        request.object.id = object.id;
        request.object.set('rsvp_status', "attending");
        request.object.save();
    } else {
      response.success();
    }
  },
  error: function(error) {
    response.error("Error: " + error.code + " " + error.message);
  }
});

});
Run Code Online (Sandbox Code Playgroud)

我已经尝试了很多变化而没有任何喜悦 …

javascript parse-platform

5
推荐指数
1
解决办法
3912
查看次数

标签 统计

javascript ×2

parse-platform ×1

pubnub ×1