我们正在开发一个基于cordova的Android应用程序,它具有聊天功能.我们正在从服务器发送测试聊天消息,当应用程序处于前台时,我们收到了消息.
我们希望在应用处于后台时收到有关聊天消息的通知.但是,我们没有收到任何关于聊天消息的推送通知.
我们遵循的步骤如下所述.请告诉我们我们所犯的错误.
当应用处于后台时,我们已将此链接引用以在设备上获取通知.
我们使用cordova PushPlugin注册设备以进行推送通知.并使用以下代码注册设备
pubnub.mobile_gw_provision ({
device_id: 'A655FBA9931AB',
op: 'add',
gw_type: 'gcm', // or 'apns'
channel: 'my_chat',
callback: mySuccessCallback,
error: myErrorCallback,
});
Run Code Online (Sandbox Code Playgroud)
如果我们以编程方式发送使用GCM设备ID以使用GCM API从我们的服务器发送推送通知,我们将获得推送通知.
当应用程序在前台时,我们从pushPlugin的onNotificationGCM方法接收来自pubnub的通知警报.
我们还在管理控制台中配置了GCM服务器API密钥并启用了pubnub推送通知.
我使用下面的Python代码发布聊天:
_pubnub = Pubnub(publish_key='our-publish-key',
subscribe_key='our-sub-key')
channel_name = 'here-is-channel-string'
data=dict(
pn_gcm=dict(data=dict(
title_for_mobile='PN',
summary_for_mobile=['Hi, test']
)
),
text='what is your dob?',
sender=dict(name='Jon Snow', id='yyyyyyyy'),
meta=dict(job=dict(id='zzzzzzzz'))
)
_pubnub.publish(channel_name, data)
Run Code Online (Sandbox Code Playgroud)
在应用程序处于后台时获取传入聊天消息的推送通知是我的应用程序的关键功能.
请让我知道我做错了什么?
android phonegap-plugins cordova pubnub google-cloud-messaging
是否存在在客户端使用socket.io的云/托管推送系统?我知道的系统,没有一个使用socket.io AFAIK:
我有什么服务吗?他们中的任何一个可以与socket.io一起使用吗?
我正在学习pubnub并且我阅读了他们的文档,但我找不到如何管理多房间聊天框.
默认情况下,任何人都可以收听频道.订阅它并在其上发布很容易.
我想要的是拥有一个主要的公共房间(到目前为止一直很好),但任何人都应该能够私下与其他人交谈而不会被其他用户阅读.
这些动态房间将被标记,用户应该能够从一个房间到另一个房间.
另一个要求是私下与某人交谈不会让你离开你订阅的其他房间(你仍然可以通知你在聊天时在另一个房间发布了一条新消息)
实现这一目标的最佳做法是什么?
我需要知道实现这一目标的最佳方法,因为文档仅描述了单个房间的基本情景,而且在互联网上没有任何相关内容.
谢谢.
PS:我知道PubNub一次不建议超过2个频道(即使我很难找到解释).
PPS:我正在使用punbub和socket.io
我正在使用PubNub创建一个人对人聊天应用程序.
基本上,每个用户都订阅了他们自己的频道,然后双方以即时消息的方式将消息发送到彼此的频道.
然后,消息将显示在页面上.我正在使用JQuery.
pubnub.subscribe({
restore : true,
channel : 'my_channel',
callback : function(message) {
console.log(JSON.stringify(message));
$('div.chatbox').append('<div>'+message+'</div>');
}
});
Run Code Online (Sandbox Code Playgroud)
但是,我希望能够检测用户何时脱机(我真的不在乎他们如何脱机,只是因为与另一方的连接不再可用).
因此,如果用户1和用户2正在通话,则用户2下线,PubNub端是否有任何机制允许用户1检查用户2的连接状态?我如何在JS代码中实现它(骨架代码是可以的)?
提前致谢.
PS我不想使用Socket.IO
我必须创建一种让用户互相聊天的能力.我发现PubNub是解决这个问题的好工具.但它似乎并不像我预期的那么容易(.
用户登录后,他在对话屏幕上.对话存储在我的服务器上的数据库中.db中的对话行示例:conversationID,conversationName,string - 用空格分隔的用户ID.要获取会话列表,我可以向服务器数据库发送请求,获取并显示在屏幕上.此外,我必须订阅所有这些对话渠道.我认为每个会话的频道名称可以是数据库中的ID号.
此外,我创建了一个用户可以创建对话的屏幕.他可以选择一个或多个随播广告,并向所选用户发送邀请.
然后,当用户向另一个人发送邀请时,我必须在我的数据库中添加新的会话记录,并以某种方式通知该用户邀请.我怎么能做到这一点?我应该使用PubNub的推送通知吗?如此处所述,我必须注册我的应用程序才能获得推送通知,然后我可以向通道发送通知.但是,如果用户尚未订阅此频道,用户将如何获得此通知?我被困在这里.
我正在开发iOS静态库项目(9.0).我决定将PubNub包含在我的静态库项目中.我遵循的步骤;
PodFile的内容如下:
平台:ios,"9.0"
来源' https://github.com/CocoaPods/Specs.git '
use_frameworks!
pod"PubNub","〜> 4.0"
安装完成后,我会收到Debug和Release的警告;
[!] xxxIOSFramework [Debug]目标覆盖OTHER_LDFLAGS`Pods/Target Support Files/Pods/Pods.debug.xcconfig'中定义的构建设置.这可能导致CocoaPods安装出现问题
.xcworkspace并在树中看到了我的项目和Pods项目.ld: framework not found Pods在我重新搜索之后,大多数人说删除了Pods.framework以红色突出显示的内容,我做了.
Pods.framework,构建继续给出错误,如;ld: -rpath can only be used when creating a dynamic final linked imageTarget > Build Settings > Other Linker Flags.ObjC添加了,我也添加$(inherited)但错误仍然存在.任何人都知道-rpath can only be used when creating a dynamic final linked image在添加Cocoapods到iOS静态库项目时出错?如果需要,我可以提供更多信息. …
我们正在用Java编写消息传递应用程序.默认情况下,pubnub Java sdk支持异步发布消息.我们正在使用pubnub 3.7.10版本.
但是我们想要同步使用pubnub发布消息.我们怎样才能做到这一点?
谢谢
我试图获取在订阅端作为 PubNub 消息传递的 JSON 值。这个代码是
package main
import (
"encoding/json"
"flag"
"fmt"
"github.com/pubnub/go/messaging"
)
type DeployMessages struct {
Server string
Repo string
}
type PNMessage struct {
Messages []DeployMessages
Id string
Channel string
}
func main() {
publishKey := flag.String("pub", "demo", "publish key")
subscribeKey := flag.String("sub", "demo", "subscribe key")
channels := flag.String("channels", "channel1, channel2", "channels to subscribe to")
pubnub := messaging.NewPubnub(*publishKey, *subscribeKey, "", "", false, "", nil)
successChannel := make(chan []byte)
errorChannel := make(chan []byte)
go pubnub.Subscribe(*channels, "", successChannel, false, …Run Code Online (Sandbox Code Playgroud) 我已经实现了 pubnub 来创建一个用于接收实时消息的套接字连接。我在开发人员工具中注意到的一件事是 - pubnub 心跳状态显示等待特定时间间隔,主要在 4.3-5 分钟之间。
看了他们的文档,发现超时时间是可以修改的,默认是320秒。在为我的网站实施此功能后,我可以注意到一些延迟,我不确定是否是 pubnub 导致了问题。
请让我了解挂起状态背后的想法。另外,如果它对内存有影响。如果是,那么影响与心跳间隔的增加或减少有何关系?
仅供参考,我的 pubnub 设置仅包含发布者密钥、订阅者密钥、uuid 和 ssl(真)