13 Replies Latest reply: May 17, 2012 1:43 PM by Cameron.Jacobs RSS

    Flash Socket Policy File

    Cameron.Jacobs

      Hello - just installed CF10 on Fedora 16 using Apache.  And am trying to run some websocket code, and it seems to work great as a websocket on Chrome and Firefox.  However on IE8 it does not seem to fail over to Flash.

       

      I receive a console message:

      [WebSocket] cannot connect to Web Socket server at ws://192.168.1.5:8585/cfusion/cfusion (SecurityError) make sure the server is running and Flash socket policy file is correctly placed

       

      I have double checked that Start Flash Policy Server is enabled and I have disabled all firewalls on this machine.

       

      As a fix attempt, I tried to copy "/opt/coldfusion10/cfusion/wwwroot/crossdomain.xml" to my site root "/data/site/".  But none of that has seemed to change anything.

       

      Does anyone have any ideas for me to try or ran across this problem?  I haven't seen any complaints about WebSocket's Flash fallback, so I can only assume that it works, but it's just my installation that is having difficulty.

       

      Thanks!

        • 1. Re: Flash Socket Policy File
          ksaini Adobe Employee

          Hi Jacobs,

           

          Is this issue happening only on Fedora as we don't suooprt it and haven't tested on that. Can you please try it on any other supported OS.

          We have tested it on IE8 and it worked for us. Also can you enable debug for websocket and provide us the cfusion.log.(Mail me ksaini@adobe.com)

           

          To enable debugging:

          Go to: {cf_home}/lib/neo-websocket.xml  , , set logging level to debug and restart CF server

           

          After running the same testcase you will see debug entries on console.

           

          Thanks

          Kunal Saini

          Adobe ColdFusion Team

          • 2. Re: Flash Socket Policy File
            Cameron.Jacobs Community Member

            Hello -

             

            I just attempted the logging output and was hoping to get something useful based on what you described, but Google Chrome is able to connect to the websocket perfectly and it displays logging information; however, IE8 (which doesn't support websockets and should fall back to the flash socket) still cannot connect and there is no logging output into the log files.  So it appears to be the flash socket fall back that's failing.  Based on the console message that shows in the IE8 Developer Tools, it seems to be a connection or security issue...

            [WebSocket] cannot connect to Web Socket server at ws://192.168.1.5:8585/cfusion/cfusion (SecurityError) make sure the server is running and Flash socket policy file is correctly placed

             

            I can understand that Fedora isn't yet supported.  Unfortunately, it's the version I need to use and would love to get this working, I can only imagine that it's a minor issue.

             

            Do you have any ideas how I continue to debug this?

             

            Thanks!

            Cameron

            • 3. Re: Flash Socket Policy File
              Cameron.Jacobs Community Member

              I did enable the debugging as you mentioned Kunal, but I only see debugging output on connections that successfully connected to the websocket.  But the ones that do successfullly connect aren't the problem.  IE8 fails to connect entirely.

               

              Any additional ideas?

              • 4. Re: Flash Socket Policy File
                Cameron.Jacobs Community Member

                Okay, well I just rebuilt my test server using Ubuntu 11.10 which is on your supported server list, and I am still receiving the same errors.  So, it definitely wasn't a problem with Fedora.  Anyway.  Now that I'm on a supported server, I'm going to consider and post this as a bug.

                • 5. Re: Flash Socket Policy File
                  ksaini Adobe Employee

                  Yes we support Ubuntu and I will test on this config again. One more thing can you confirm Jacobs? Try to access websockets without Apache i.e access websocket with inbuilt webserver.

                  Also are you running as root user as flash port 843 won't work otherwise?

                   

                  Thanks

                  Kunal

                  • 6. Re: Flash Socket Policy File
                    Cameron.Jacobs Community Member

                    Hello Kunal

                     

                    I've tried replying to this in the bug report system, but haven't gotten a response there for some time.  Is it possible to re-enable the Internal Web Server (port 8500) after a connector to Apache has already been installed?  I would love to try this, but I would rather not re-install the server if I can avoid it.

                     

                    Thanks!

                    Cameron

                    • 7. Re: Flash Socket Policy File
                      ksaini Adobe Employee

                      Hi Jacobs,

                       

                      You can definately re-enable the internal port without re-instaling the CF. There are two cases:

                      1. If you have configured Apache after installing CF(via wsconfig) then no need to do anything ,you can directly access port(8500/8501/) and access webroot.

                      2. If you have configures Apache at the time of installation then, {cf_home}/runtime/conf/server.xml and make sure this code is uncommented:

                      <Connector executor="tomcatThreadPool" maxThreads="50"

                                     port="8500" protocol="org.apache.coyote.http11.Http11Protocol"

                                     connectionTimeout="20000"

                                     redirectPort="8445" />

                      and restart CF.

                       

                      Also one more thing can you check if flash socket port 843 is enabled(netstat). BTW in the latest intermediate build we have changed this port to 1243.

                       

                      Thanks

                      Kunal

                      • 8. Re: Flash Socket Policy File
                        Cameron.Jacobs Community Member

                        Okay, well that's a great start.  I was able to re-enable the internal webserver and test it out.  Unfortunately I'm still showing the same problem.

                         

                        Just checked netstat for port 843 and it doesn't appear to be listening.  I have opened the port in UFW, but it is showing connection refused.

                         

                        UFW Verbose Status output:

                        Status: active

                        Logging: on (low)

                        Default: deny (incoming), allow (outgoing)

                        New profiles: skip

                         

                        To                         Action      From

                        --                         ------      ----

                        843,8500,8585/tcp (ColdFusion) ALLOW IN    Anywhere

                        80/tcp (Apache)            ALLOW IN    Anywhere

                        22/tcp (OpenSSH)           ALLOW IN    Anywhere

                        843,8500,8585/tcp (ColdFusion (v6)) ALLOW IN    Anywhere (v6)

                        80/tcp (Apache (v6))       ALLOW IN    Anywhere (v6)

                        22/tcp (OpenSSH (v6))      ALLOW IN    Anywhere (v6)

                         

                         

                        Telnet into this port is also being refused, so this would appear to be the problem, but I am not sure what I'm missing about why this port isn't listening.  Any ideas?

                        • 9. Re: Flash Socket Policy File
                          Cameron.Jacobs Community Member

                          Any help / information about what to change or do on this?

                          • 10. Re: Flash Socket Policy File
                            cgjazinski@upta.edu

                            I was banging my head against the wall with the same issue being described. My problem ended up being solved by opening the "Flash policy port" (can be found in neo-websockets.xml) in the firewall. My default port was 1243 (I also have 843 opened up as well). After opening up that all flash fallback support has been working in IE8 . Hope this helps someone else.

                            • 11. Re: Flash Socket Policy File
                              Cameron.Jacobs Community Member

                              Interesting!  My neo-websockets.xml file doesn't seem to have any information about the actual port used by the flash fallback...  File is displayed below:

                               

                                      <wddxPacket version='1.0'>

                                              <header/>

                                              <data>

                                                      <struct type='coldfusion.server.ConfigMap'>

                                                      <var name='port'>

                                                              <string>8585</string>

                                                      </var>

                                                      <var name='socketTimeout'>

                                                              <number>300</number>

                                                      </var>

                                                      <var name='maxFrameSize'>

                                                              <number>1024</number>

                                                      </var>

                                                      <var name='flashFallBack'>

                                                              <boolean value='true'/>

                                                      </var>

                                                      <var name='logging'>

                                                              <string>warning</string>

                                                      </var>

                                                      </struct>

                                              </data>

                                      </wddxPacket>

                               

                              Appreciate your help, just a little confused as how to move forward with it.

                              • 12. Re: Flash Socket Policy File
                                ksaini Adobe Employee

                                Hi Jacobs,

                                 

                                This entry has been added after the intermediate build. Just try with the released CF10.  Just open the given port in firewall. Let me know if it helps.

                                 

                                Thanks

                                Kunal

                                • 13. Re: Flash Socket Policy File
                                  Cameron.Jacobs Community Member

                                  Works great!  Thanks a bunch!