无法使用PubNub';s herenow(java对象)

无法使用PubNub';s herenow(java对象),java,coldfusion,pubnub,Java,Coldfusion,Pubnub,我已经将Pubnub-4.0.0.jar文件包含到我的webroot中。 (Pubnub-4.0.0.jar可在此处下载:) 我正试图将“现在就在这里”的java代码引入我的coldfusion项目,但在这样做时遇到了一些麻烦 java代码如下所示: PNConfiguration pnConfiguration = new PNConfiguration(); pnConfiguration.setSubscribeKey("SubscribeKey") PubNub pubnub =

我已经将Pubnub-4.0.0.jar文件包含到我的webroot中。 (Pubnub-4.0.0.jar可在此处下载:)

我正试图将“现在就在这里”的java代码引入我的coldfusion项目,但在这样做时遇到了一些麻烦

java代码如下所示:

PNConfiguration pnConfiguration = new PNConfiguration();
pnConfiguration.setSubscribeKey("SubscribeKey")   
PubNub pubnub = new PubNub(pnConfiguration);
pubNub.hereNow()
    .channels(Arrays.asList("ch1", "ch2", "ch3")) // who is present on those channels?
    .includeState(true) // include state with request (false by default)
    .includeUUIDs(true) // if false, only shows occupancy count
    .async(new PNCallback<PNHereNowResult>() {
        @Override
        public void onResponse(PNHereNowResult result, PNStatus status) {

        }
});
<cfobject type="java" class="com.pubnub.api.PNConfiguration" name="objPNConfiguration" >
<cfset PNConfiguration = objPNConfiguration.init() >
<cfset PNConfiguration.setSubscribeKey("SubscribeKey") >
<cfobject type="java" class="com.pubnub.api.PubNub" name="objPubNub" >
<cfset pubnub = objPubNub.init(PNConfiguration) >
<cfset tmp = pubnub.hereNow({channels: "5A4B3B59-FA6A-F22A-404F18EFA8112508"}) >
<cfdump var="#tmp#" >
PNConfiguration PNConfiguration=新的PNConfiguration();
pnConfiguration.setSubscribeKey(“SubscribeKey”)
PubNub PubNub=新的PubNub(pnConfiguration);
publinub.hereNow()
.channels(Arrays.asList(“ch1”、“ch2”、“ch3”)//这些频道上有谁?
.includeState(true)//包含请求的状态(默认为false)
.includeUIDS(true)//如果为false,则仅显示占用计数
.async(新的PNCallback(){
@凌驾
public void onResponse(PNHereNowResult结果,PNStatus状态){
}
});
我对应的Coldfusion代码如下:

PNConfiguration pnConfiguration = new PNConfiguration();
pnConfiguration.setSubscribeKey("SubscribeKey")   
PubNub pubnub = new PubNub(pnConfiguration);
pubNub.hereNow()
    .channels(Arrays.asList("ch1", "ch2", "ch3")) // who is present on those channels?
    .includeState(true) // include state with request (false by default)
    .includeUUIDs(true) // if false, only shows occupancy count
    .async(new PNCallback<PNHereNowResult>() {
        @Override
        public void onResponse(PNHereNowResult result, PNStatus status) {

        }
});
<cfobject type="java" class="com.pubnub.api.PNConfiguration" name="objPNConfiguration" >
<cfset PNConfiguration = objPNConfiguration.init() >
<cfset PNConfiguration.setSubscribeKey("SubscribeKey") >
<cfobject type="java" class="com.pubnub.api.PubNub" name="objPubNub" >
<cfset pubnub = objPubNub.init(PNConfiguration) >
<cfset tmp = pubnub.hereNow({channels: "5A4B3B59-FA6A-F22A-404F18EFA8112508"}) >
<cfdump var="#tmp#" >

我没有收到任何返回的错误。 我觉得我调用“hereNow”方法的方式不正确,或者我试图显示结果的方式不正确

在这方面有人能提供帮助吗?
谢谢

看起来
频道
是一个方法名,而不是一个结构。
includeState
includeUIDS
也是如此。将它们作为链式方法调用,并传入预期参数

  • channels()
    需要一个CF数组(即对象)
  • includeState
    includeUIDS
    需要一个简单的布尔值
前三(3)种方法应采用类似的方法:

编译后,将其添加到CF类路径。然后可以在CF中创建自定义类的实例,并将其传递到asynch()方法:


// .....
yourCallback=createObject(“java”,“your.package.name.YourCallbackClass”).init();
publinub.hereNow()
。频道([“ch1”、“ch2”、“ch3”])
.includeState(正确)
.includeUIDS(真)
.asynch(您的回调);

看起来
频道
是一个方法名,而不是一个结构。
includeState
includeUIDS
也是如此。将它们作为链式方法调用,并传入预期参数

  • channels()
    需要一个CF数组(即对象)
  • includeState
    includeUIDS
    需要一个简单的布尔值
前三(3)种方法应采用类似的方法:

编译后,将其添加到CF类路径。然后可以在CF中创建自定义类的实例,并将其传递到asynch()方法:


// .....
yourCallback=createObject(“java”,“your.package.name.YourCallbackClass”).init();
publinub.hereNow()
。频道([“ch1”、“ch2”、“ch3”])
.includeState(正确)
.includeUIDS(真)
.asynch(您的回调);

Pubnub为此提供了RESTAPI调用。
谢谢Pubnub。

Pubnub为此提供了RESTAPI调用。
谢谢Pubnub。

我不确定您的问题是否在您的Java代码中工作(假设是这样)。PubNub ColdFusion SDK已经很长时间没有更新了,可能不会更新(无需更新)。您没有收到任何错误,但是您的响应中是否有任何错误,例如0?如果是这样的话,那么你只需要在你的PubNub管理仪表板帐户中启用你的密钥的状态。我不知道有一个@史蒂夫-你只是在问java sdk吗?是的,我只是在问java sdk。我没有收到任何错误,也没有收到任何回复。我不确定您的问题是否在您的Java代码中工作(假设是这样)。PubNub ColdFusion SDK已经很长时间没有更新了,可能不会更新(无需更新)。您没有收到任何错误,但是您的响应中是否有任何错误,例如0?如果是这样的话,那么你只需要在你的PubNub管理仪表板帐户中启用你的密钥的状态。我不知道有一个@史蒂夫-你只是在问java sdk吗?是的,我只是在问java sdk。我没有收到任何错误,也没有收到任何响应。编写自己的自定义java类并不是我想要的解决方案,但听起来好像你是对的。我将尝试将此作为解决方案。谢谢你的想法。是的,不幸的是,CF中没有与java代码等价的代码。我真的不知道他们为什么进行回调
抽象
。。。因为它们都没有任何代码实现,所以它们的功能实际上就像接口一样。如果它们实际上是接口,您可以简单地使用动态代理。然而,除非有一个具体的类可以满足您的需要(或者其他不需要抽象回调的方法),否则您真的无法避免自定义java类。出于好奇,你试过CF Rest包装纸了吗?不确定它是否仍然适用于最新版本,但值得一试。那么你最终做了什么?只是想知道你是否找到了其他选择。Pubnub为此提供了一个RESTAPI调用。好吧,在这种情况下肯定更好。你应该把它和一个简短的代码片段(如果你有的话)作为一个答案发布出来,这样它就更直观了。我将尝试将此作为解决方案。谢谢你的想法。是的,不幸的是,CF中没有与java代码等价的代码。我真的不知道他们为什么进行回调
抽象
。。。因为它们都没有任何代码实现,所以它们的功能实际上就像接口一样。如果它们实际上是接口,您可以简单地使用动态代理。然而,除非有一个具体的类可以满足您的需要(或者其他不需要抽象回调的方法),否则您真的无法避免自定义java类。出于好奇,你试过CF Rest包装纸了吗?不
</cfscript>
// .....
yourCallback = createObject("java", "your.package.name.YourCallbackClass").init();
pubNub.hereNow()
    .channels( ["ch1", "ch2", "ch3"] )
   .includeState( true )
   .includeUUIDs( true )
   .asynch( yourCallback );
</cfscript>