0

我正在使用 Coldfusion Websockets 并一直在尝试遵循本教程。但是,我似乎无法让通道监听器部分工作:“HelloWorld – 版本 2:使用通道监听器”。

我在应用程序中的代码正确,但我认为它找不到 cfclistener。

this.wschannels = [ {name="world", cfclistener="myChannelListener" }];

我有使用 beforePublish 制作的 cfc 来附加时间,但它不起作用。我正在使用 CFWheels 并将通道侦听器 cfc 放在控制器文件夹中。我用不同的变体尝试了上面的代码,例如:

  • controllers/myChannelListener
  • /controllers/myChannelListener
  • controllers.myChannelListener
  • .controllers.myChannelListener

..甚至尝试从C驱动器的路径:

  • C:/Projects/myproject/controllers/myChannelListener

但它们都不起作用。我很确定这是一个路径问题。有谁知道如何指定cfclistener路径?

4

3 回答 3

1

虽然我没有使用 CFWHEELS,但我也遇到了让第二个示例也能正常工作的问题。我在它起作用之前所做的最后两个更改:

  1. 打开 CF 管理员。服务 > Web 套接字(选中“启用 WebSocket 服务”,选中“使用内置 WebSocket 服务器”)
  2. 使用 cfstart.bat 重新启动 CF(位于 CF_install_directory/cfusion/bin 中)

至少我可以确认文章中提供的示例可以进行一些摆弄。

于 2017-11-16T03:51:42.410 回答
0

事件处理程序不使用您的站点 application.cfc 文件。因此,您的 cfwheels 应用程序甚至没有发挥作用。处理程序 cfclistener 路径应该是从应用程序根开始的点标记路径。

看:

https://learn.adobe.com/wiki/display/coldfusionen/Using+WebSocket+to+broadcast+messages

向下滚动到“使用频道侦听器功能”

于 2013-08-05T02:59:05.290 回答
0

这很可能是因为 CFWheels URL 重写不允许您直接绑定到 CFC。

尝试将 CFC 放在miscellaneous文件夹中,看看它是否可以从那里工作。如果是这样,您可以将其保留在那里或创建您选择的子文件夹,并确保将其从 URL 重写中排除。

请注意,如果这行得通并且是您采用的路线,那么您将完全脱离myChannelListenerCFC 中的 CFWheels 框架。

于 2013-06-19T13:40:28.517 回答