Hi,

The instance variables defined should not be an issue because a new
instance of the handler is created for each Websocket connection [1]. But
the tenantDomain variable should not be static.

IMHO the issue should be that the uri parameter of the req object is set
twice in line 109 and 124 of [2], hence the first change is overwritten.


[1]
https://github.com/wso2/carbon-mediation/blob/master/components/inbound-endpoints/org.wso2.carbon.inbound.endpoint/src/main/java/org/wso2/carbon/inbound/endpoint/protocol/websocket/InboundWebsocketChannelInitializer.java#L100

[2] https://github.com/wso2/carbon-apimgt/blob/v6.1.66/
components/apimgt/org.wso2.carbon.apimgt.gateway/src/
main/java/org/wso2/carbon/apimgt/gateway/handlers/
WebsocketInboundHandler.java
<https://github.com/wso2/carbon-apimgt/blob/v6.1.66/components/apimgt/org.wso2.carbon.apimgt.gateway/src/main/java/org/wso2/carbon/apimgt/gateway/handlers/WebsocketInboundHandler.java#L59>

Thanks,
Arshardh

On Wed, Apr 5, 2017 at 2:11 PM, Abimaran Kugathasan <abima...@wso2.com>
wrote:

> Hi Isuru,
>
> Currently, WebSocket isn't working for any tenants.
>
> Seems, WebSocket uri, tenantDomain, etc are defined as static variables. I
> guess this will be a cause for this problem.
>
> https://github.com/wso2/carbon-apimgt/blob/v6.1.66/
> components/apimgt/org.wso2.carbon.apimgt.gateway/src/
> main/java/org/wso2/carbon/apimgt/gateway/handlers/
> WebsocketInboundHandler.java#L59
>
> On Wed, Mar 29, 2017 at 6:59 PM, Isuru Haththotuwa <isu...@wso2.com>
> wrote:
>
>> Hi,
>>
>> This is a standalone APIM 2.1.0 setup.
>>
>> I have an API published by a tenant (a.com), and subscribed by another
>> tenant (b.com). I'm using the sample netty based ws client from the docs
>> [1].
>>
>> While invoking this API, error [2] can be sen in the APIM. Going through
>> the code, noted that there is a check for 'tenantDomain.equals(req.getUri())'
>> at [3]. Down the line this causes the endpoint to be null for this
>> particular tenant domain (a.com). This works for super tenant since the
>> method getTenantDomainFromUrl actually returns the same url for super
>> tenants.
>>
>> Any explanation for this logic? What am I doing wrong here?
>>
>> [1]. https://docs.wso2.com/display/AM210/Create+a+WebSocket+API
>> [2]. ERROR - InboundWebsocketSourceHandler Endpoint not found for port :
>> 9099 tenant domain : a.com
>> [3]. https://github.com/wso2/carbon-mediation/blob/release-4.6.
>> 10/components/inbound-endpoints/org.wso2.carbon.inbound.
>> endpoint/src/main/java/org/wso2/carbon/inbound/endpoint/
>> protocol/websocket/InboundWebsocketSourceHandler.java#L160
>>
>> --
>> Thanks and Regards,
>>
>> Isuru H.
>> +94 716 358 048 <+94%2071%20635%208048>* <http://wso2.com/>*
>>
>>
>>
>> _______________________________________________
>> Dev mailing list
>> Dev@wso2.org
>> http://wso2.org/cgi-bin/mailman/listinfo/dev
>>
>>
>
>
> --
> Thanks
> Abimaran Kugathasan
> Senior Software Engineer - API Technologies
>
> Email : abima...@wso2.com
> Mobile : +94 773922820 <+94%2077%20392%202820>
>
> <http://stackoverflow.com/users/515034>
> <http://lk.linkedin.com/in/abimaran>
> <http://www.lkabimaran.blogspot.com/>  <https://github.com/abimarank>
> <https://twitter.com/abimaran>
>
>
> _______________________________________________
> Dev mailing list
> Dev@wso2.org
> http://wso2.org/cgi-bin/mailman/listinfo/dev
>
>


-- 
*Arshardh Ifthikar*
Trainee Software Engineer
WSO2, Inc.
Mobile: +94719806525
_______________________________________________
Dev mailing list
Dev@wso2.org
http://wso2.org/cgi-bin/mailman/listinfo/dev

Reply via email to