我在Android上使用CometD Java客戶端。向CometD添加自定義字段訂閱消息
編譯組: 'org.cometd.java',名稱: '的cometd-Java的客戶端',版本: '2.9.1'
我需要訂閱的頻道上CometD服務器。但是有一個問題 - 服務器需要自定義訂閱消息(這是從服務器文檔的預期訂閱消息的有效載荷):
[
{
"user": "xyz-WQUAq3shWho1ZcJHaibQYzCh2ILMMX1o-gA6NuehTFYMhvViv6Ow3dvPbyt8Zwg10-bd8bd779f107615b1c5a1470706e4050e5389ddc",
"domain": "xyz",
"pid": "gA6NuehTFYMhvViv6Ow3dvPbyt8Zwg10",
"sid": "85f103a2",
"gid": "WQUAq3shWho1ZcJHaibQYzCh2ILMMX1o",
"pageId": "6ea23e",
"entityId": "xyz",
"triggeringGoal": "3E955818355C44E2479B2A26629E69566C8C6376",
"chatSearchPattern": "ua.domain=xyz",
"startTime": 1482931626853,
"metadata": "{}",
"chatMetadata": "{}",
"language": "en",
"id": "3",
"channel": "\/meta\/subscribe",
"subscription": "\/chat\/xyz-WQUAq3shWho1ZcJHaibQYzCh2ILMMX1o-gA6NuehTFYMhvViv6Ow3dvPbyt8Zwg10-bd8bd779f107615b1c5a1470706e4050e5389ddc",
"clientId": "26l1v2ngpdcwdtno1wu30rk92dur4",
"ext": {
}
}
]
所以我的問題是我怎麼添加到訂閱消息自定義字段(user
,domain
,pid
, sid
等)?目前,我訂閱頻道這樣的:
cometdClient.getChannel("/chat/" + clientID).subscribe(new ChannelListener("/chat/ messages"), new ChannelListener("/chat/ progress"));
但預期它是失敗的。
順便說一下,我使用org.eclipse.jetty.client.HttpClient
作爲HttpClient。
感謝您指出其他的東西了。很遺憾,我無法升級。 2.9.1以上的所有內容在異常握手期間都會失敗:exception = java.lang.NullPointerException:試圖調用虛擬方法'javax.net.ssl.SSLEngine org.eclipse.jetty.util.ssl.SslContextFactory.newSSLEngine(java。郎。字符串,int)'空對象引用 –
'NullPointerException'與CometD版本沒有任何關係,它可能只是一些錯誤的配置或缺少調用'start()'方法來啓動這些Jetty對象的生命週期。 – sbordet