问题标签 [bayeux]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
624 浏览

salesforce - /meta/connect 通道消息 reconnect=handshake 应该触发哪些操作?

我的应用程序订阅了一些广播 Bayeux 频道。它还通过 /meta/connect 侦听元通道以接收任何建议,以防任何连接失败。现在我的问题是我是否需要重新启动我的 Bayeux 客户端,即首先断开连接()并再次尝试握手()或者只有握手()调用就足以在我得到 reconnect=handshake 作为建议时恢复连接?

请对此发表评论以获取更多信息。

这就是我为bayeux客户端设置长轮询连接的方式

现在,我通过请求标头传递的这个访问令牌具有一些刷新时间值。可以说是30分钟。这些是我所做的实现

第一次实施:

每 120 分钟我使用 client.unsubsrcibe 和 client re handshake() 但得到了非法状态异常。似乎需要断开连接才能重新握手,但不确定。因此,每 120 分钟重新启动一次客户端。但是这种方式监听器被删除可能是由于无效的 accessToken 因为我不是每 29 分钟更新一次。

第二次实施:

在每 29 分钟内,我使用重新登录获取新的连接 accessToken 以便在此自定义方法的每个回调中都将具有有效的令牌。

上述机制在一段时间后失败,并且监听器被丢弃。并从 meta/connect 获得以下信息

{"clientId":"4hi1pg62ce7bri39fnv3apg4j5ch","advice":{"reconnect":"handshake","interval":500},"channel":"/meta/connect","id":"103","error ":"403::未知客户端","成功":false}

{"clientId":"5atyxwdtyoggv4s1v3ce4dobm9u9","advice":{"reconnect":"handshake","interval":500},"channel":"/meta/connect","id":"2203","error ":"403::未知客户端","成功":false}

第三次实施:

在我的第二个实现中,我根据元/连接消息触发了 client.disconnect() 和 client.hanshake(),即每当我得到 reconnect = handshake 时,我都会断开连接并握手,它仍然可以正常工作,没有任何错误。

你能告诉我我错过了什么以及实现这些场景的正确方法应该是什么?

0 投票
1 回答
2155 浏览

salesforce - Cometd/bayeux client + salesforce streaming API issue

I have my .NET client (windows service) which subscribes to Salesforce streaming API push topics.

I am able to connect to Salesforce and can get the notifications to my client. Everything is working fine, but:

When there is no activity on the channel (no changes for Salesforce object) after some time (maybe 2 hours) if I update the object, I am not receiving any notification from Salesforce.

I had tried putting listeners to log and in the logs it says below

{"clientId":"f6xo67iet55w5j7ek6ldw72nfc6","channel":"/meta/connect","id":"82","successful":true} 5/15/2018 8:12:28 PM

{"advice":{"interval":0,"reconnect":"handshake"},"channel":"/meta/connect","id":"83","error":"403::Unknown client","successful":false} 5/15/2018 8:12:28 PM

{"clientId":"hbx1v2cxebbeder11s99dqkxmasre","advice":{"interval":0,"timeout":110000,"reconnect":"retry"},"channel":"/meta/connect","id":"85","successful":true} 5/15/2018 8:12:29 PM

{"clientId":"hbx1v2cxebbeder11s99dqkxmasre","channel":"/meta/connect","id":"86","successful":true} 5/15/2018 8:14:20 PM

{"clientId":"hbx1v2cxebbeder11s99dqkxmasre","channel":"/meta/connect","id":"87","successful":true} 5/15/2018 8:16:10 PM

so as per the log, sometimes I get "403::Unknown client" but immediately after that it says again channel successful.

But as I said when I try updating the Salesforce object after 2 hours (as per log, it is in connection successful) I am not receiving any notification.

If I restart my windows service and gets the notification again.

In my client I am using cometd from - https://github.com/couchand/CometD.NET/tree/headers and for push topics subscription I am using this - https://github.com/foluis/Salesforce_PushTopics

Any help would be greatly appreciated.

0 投票
1 回答
904 浏览

salesforce - Salesforce cometD: 401::Request requires authentication

I have to subscribe to cometD Salesforce channel and hence building cometD client in python. I am using the below python library.

https://github.com/dkmadigan/python-bayeux-client

And below is the handshake response I am getting

And I am getting 401::Request requires authentication.

In the Authorization key, I have concatenated password and Access token i.e. admin@123Pi6s9Y2QVergfergregpqqY where admin@123 is the password I use to login to Salesforce.

I have been banging my head since 2 days but not able to figure out why handshake is failing. Any suggestions?

0 投票
2 回答
727 浏览

java - Java bayeux 客户端在空闲时与 TimeoutException 断开连接

我正在初始化 Bayeux 客户端:

我用它与服务器进行一些通信,它可以工作,它订阅频道、发送、接收,然后我让它闲置一段时间。我得到以下异常:

和以下多次:

如果我保持忙碌,它就不会失败。我尝试更改 httpclient 的超时,但这只会延迟问题。为什么 Bayeux 关闭通道而不是进行轮询?我使用最新版本 org.cometd.java 4.0.2。

还要注意的是,我有一个可以正常工作的 JavaScript 客户端。

有人可以帮忙吗?

0 投票
2 回答
1624 浏览

spring-boot - Spring boot 考虑在你的配置中定义一个名为 'servletContext' 的 bean

我有一个包含多个模块的项目,它是 tomcat 项目。我需要转换为 spring boot 项目。

这是一个带有跟随 bean 的 xml 文件:我使用了 @ImportResource("classpath:xxx.xml")。

这里抛出异常:


应用程序无法启动


描述:

xxxService 中构造函数的参数 0 需要一个名为“servletContext”的 bean,但找不到该 bean。

行动:

考虑在配置中定义一个名为“servletContext”的 bean。

我几乎三天都不知道这个问题。有这方面经验的请帮帮我,万分感谢!

0 投票
1 回答
514 浏览

c# - “以管理员身份运行”(System.Net.WebException:请求被中止:无法创建 SSL/TLS 安全通道。)

我只在 2 台 PC 上收到 WebException 错误(我尝试了 5 台不同的 PC)。如果我以“管理员身份”启动应用程序,则不会出现此问题。

我试图添加

并更改证书的不同标志

但这没有帮助。

例外:

我希望代码可以在所有 PC 上运行,为什么其中一些需要管理员权限才能连接 WebClient?我是否需要在某个受信任的位置添加证书才能正常工作?

0 投票
1 回答
547 浏览

.net - Cometd/bayeux 客户端问题

我们已经创建了 .Net 核心 Windows 服务,用于使用来自 Salesforce 的平台事件(每当在 Salesforce 中创建/更新的特定对象想要获取信息时)。我们正在使用 Cometd/bayeux 客户端订阅 Salesforce 平台事件。

最初一切正常,只要 Salesforce 对象发生更改,我们就会获取数据,但在空闲几个小时(大约 1-2 小时)后,没有数据获取。检查 Bayeux 客户端状态,它显示为已连接,但订阅未发生。当我们重新启动服务时,它开始工作。使用以下代码进行连接和订阅。任何人都可以帮助解决这个问题。

0 投票
0 回答
89 浏览

python - 尝试与 CometD / Bayeux 服务器握手时获取未知的 402 客户端

1- 我正在尝试订阅特定频道并从一台服务器进行长轮询,但我收到客户端未知错误 402。以前有人遇到过这个问题吗?代码中缺少什么?

#Handshaking
async def main():

0 投票
0 回答
31 浏览

.net - Bayeux客户端断开连接

我正在为异步消息传递的 cometD 连接实现 Bayeuxclient(long-polling)。间歇性地,我突然收到一条断开连接的消息(我在服务器或应用程序日志中没有发现任何异常)并尝试重新连接。我相信一些未知的延迟导致了这个问题(我不是 100% 确定)。 

你能建议我如何解决这个问题吗?通过从长轮询迁移到 websockets,我们可以获得更好的性能吗?

0 投票
0 回答
90 浏览

java - CometD Bayeux Java 客户端 - 订阅者未收到事件

我面临通过长轮询传输连接服务器的 CometD 客户端应用程序的问题。当 Bayeux 客户端和频道显示为 CONNECTED 并且订阅者停止接收事件时,存在未知场景。同时我们看到事件正在到达扩展(ReplayExtension)。

我在 PullAuthFailureListener 中有一个逻辑,它在消息不成功时重新启动 Bayeux 客户端。重启步骤为:

  • 取消订阅所有频道。
  • 断开 Bayeux 客户端。
  • 再次握手
  • 注册频道/订阅者 (/event/ae_spark__TEL_Bulk_Change__e)

有什么建议可能会阻止事件到达订阅者,或者有什么建议可以进一步解决这个问题?