我正在使用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
路径?
答案 0 :(得分:1)
虽然我没有使用CFWHEELS,但我也遇到了问题,第二个例子也是如此。我在工作之前做的最后两个更改:
至少我可以确认文章中提供的示例适用于一些小问题。
答案 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
向下滚动到“使用频道监听器功能”