Coldfusion Websocket频道监听器

时间:2013-06-10 16:33:42

标签: coldfusion websocket coldfusion-10 cfwheels cfwebsocket

我正在使用Coldfusion Websockets并一直在尝试关注this tutorial。但是,我似乎无法让通道监听器部分工作:“HelloWorld - 版本2:使用通道监听器”。

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

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

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

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

..甚至尝试从C盘开始的路径:

  • C:/Projects/myproject/controllers/myChannelListener

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

3 个答案:

答案 0 :(得分:1)

虽然我没有使用CFWHEELS,但我也遇到了问题,第二个例子也是如此。我在工作之前做的最后两个更改:

  1. 已打开CF管理员。服务>网络套接字 (选中"启用WebSocket服务",选中"使用内置的websocket服务器")
  2. 使用cfstart.bat重新启动CF(位于CF_install_directory / cfusion / bin中)
  3. 至少我可以确认文章中提供的示例适用于一些小问题。

答案 1 :(得分:0)

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

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

请注意,如果这样做并且是您所采用的路线,那么您将完全位于myChannelListener CFC中的CFWheels框架之外。

答案 2 :(得分:0)

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

请参阅:

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

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