CF2021 WebSocket入门(cfwebsocket)

ny6fqffe  于 2023-08-05  发布在  其他
关注(0)|答案(1)|浏览(115)

我刚开始使用cfwebsockets,遇到了一些麻烦。我在网上发现,由于这是一个面向公众的应用程序,最好使用WebSocket代理。
CF2021,版本:2021.0.03.329779
Ubuntu 20.04LTS
到目前为止的步骤:
1.我将WebSocket包添加到我的服务器并启用了web-sockets。已重新启动服务器。
1.将此添加到我的application.cfc:
<cfset this.wschannels = [ {name=“chat”} ] />
(the应用程序也具有this.name从变量设置的www.example.com = 3。创建了一个简单的页面,其中包含:

  1. <cfwebsocket
  2. name="wSocketObj"
  3. onMessage="wsOnMessage"
  4. onOpen="wsOnOpen"
  5. onClose="wsOnClose"
  6. onError="wsOnError"
  7. subscribeTo="chat"
  8. secure="true"/>
  9. <script type="text/javascript">
  10. wsOnMessage = function(aEvent,aToken) {
  11. console.log('wsOnMessage',aevent);
  12. var message = ColdFusion.JSON.encode(atoken);
  13. var txt=document.getElementById("myDiv");
  14. txt.innerHTML +=message +"<br>";
  15. }
  16. wsOnOpen = function() {
  17. alert("wsOnOpen Connection is open");
  18. }
  19. wsOnClose = function() {
  20. alert("wsOnClose Connection Closed");
  21. }
  22. wsOnError = function() {
  23. alert("wsOnError!");
  24. console.log(arguments);
  25. }
  26. sendMessage = function() {
  27. var text = window.prompt("Enter some text","");
  28. if (text) {
  29. wSocketObj.publish("chat", text);
  30. }
  31. }
  32. </script>
  33. <cfdiv id="myDiv"></cfdiv>
  34. <div id="myChatArea"></div>
  35. <input type="text" id="myMessage" /><input id="myButton" type="button" value="Send Message" onClick="sendMessage()" />

字符串
1.我在Chrome Console中看到了这个:
WebSocket连接到'wss://myhost.mydomain.com:8555/cfusion/cfusion'失败:CFWebSocketWrapper.open @ cfwebsocketCore.js:21 init @ cfwebsocketChannel.js:49_cf_websockets_init_6322652258206397@client.cfm:35 fire @ cfajax.js:1214 $E.windowLoadHandler @ cfajax.js:1321 cfwebsocketCore.js:54 Uncaught TypeError:无法在WebSocket.wsConnection.onerror(cfwebsocketCore.js:54:29)设置undefined的属性(设置“readyState”)
我以为是防火墙的问题,所以在Ubuntu中禁用了它
1.就在这时,我似乎需要配置一个代理。
1.我从命令行运行了/opt/ColdFusion/cfusion/bin/wsproxyconfig.sh,并验证了apache2.conf中的行是否存在,并且文件夹“/opt/ColdFusion/config/wsproxy/1/mod_wsproxy.conf”是否已创建。已重新启动apache 2和CF2021
1.相同结果
1.意识到我需要在CF管理中更改WebSocket配置,
1.当我在CF管理中选择使用代理时,保存更改按钮消失,我无法保存它。
显然,我在这里错过了一些非常重要的东西。任何人可以提供的任何帮助都将不胜感激。
提前致谢

mwg9r5ms

mwg9r5ms1#

这是一个已知的问题,在几个bug报告中报告给Adobe(其中一个被撤回为重复)。在我们等待Adobe的解决方案的同时,我将分享我在以下内容中提供的解决方案:
作为一个解决方案,对于那些可能需要启用“使用代理”字段(或者更改页面上的其他前3个字段)的用户,请注意,如果您将光标放在“端口”字段中,您可以点击回车键,您的浏览器将提交页面(CF将保存更改)。
你甚至可以离开页面并返回它,以证明这一点。但即使这样做了,提交按钮仍然会“不见了”,这是不对的。
如果你想添加一个投票或跟随跟踪票在这个,它在https://tracker.adobe.com/#/view/CF-4216275。

相关问题