When I deploy it manually (standalone tomcat or non openshift docker
container) the websocket port is 8080 since it's just a context path in
tomcat. This works perfectly fine. When I deploy to openshift and expose
port 8080, I'm able to hit port 80 on the router with the name that I
mapped to the application and get the page and content I expect, but the
websocket doesn't connect like it does when I deploy manually. I also get
the same behavior with the example websocket applications included with
Tomcat which work under normal conditions. So basically, the main page of
my application is at http://testapp.example.com/testwebapp/ and the
javascript loaded connects to a websocket at ws://
testapp.example.com/testwebapp/websocket. Since I get the page to load when
I hit the application I know it's exposing the right port, but form some
reason the websocket can't connect.


On Wed, Sep 14, 2016 at 10:49 PM, Clayton Coleman <ccole...@redhat.com>
wrote:

> If you're using openshift v3 make sure your websocket port is also listed
> in your service (services list the ports they expose).  You can alter your
> route to point directly at your websocket port by setting the port field:
>
> $ oc explain route.spec.port
> RESOURCE: port <Object>
>
> DESCRIPTION:
>      If specified, the port to be used by the router. Most routers will
> use all
>      endpoints exposed by the service by default - set this value to
> instruct
>      routers which port to use.
>
>     RoutePort defines a port mapping from a router to an endpoint in the
> service endpoints.
>
> FIELDS:
>    targetPort   <string> -required-
>      The target port on pods selected by the service this route points to.
> If
>      this is a string, it will be looked up as a named port in the target
>      endpoints port list. Required
>
> Set it to "8000".
>
>
> On Wed, Sep 14, 2016 at 10:54 AM, Tony Saxon <tony.sa...@gmail.com> wrote:
>
>> I have an application that runs on tomcat and uses websockets. I'm able
>> to build it and test it in a standalone docker container and it works fine.
>> When I deploy that same image to my openshift instance the application can
>> not connect to the websocket. After doing some research I've found some
>> conflicting information. Older articles that i've read mention that you can
>> only connect to websockets on openshift through port 8000 or 8443. However,
>> the documentation at https://docs.openshift.org/lat
>> est/architecture/core_concepts/routes.html#routers seems to indicate
>> that websockets are no different then the other protocols handled by the
>> openshift router. Is this the case or does it need to be port 8000? If it's
>> port 8000, do I need to configure a separate connect in tomcat in my docker
>> container for port 8000?
>>
>> _______________________________________________
>> users mailing list
>> users@lists.openshift.redhat.com
>> http://lists.openshift.redhat.com/openshiftmm/listinfo/users
>>
>>
>
_______________________________________________
users mailing list
users@lists.openshift.redhat.com
http://lists.openshift.redhat.com/openshiftmm/listinfo/users

Reply via email to