Hi,
ALT Mobile DEV wrote:
> Hi and thank you for the superior implementation!
>
> I was porting our yet-to-be-released Dynamic Mashup server from Sun
> Labs' Brazil to Grizzly for its Comet support. In addition to creating
> composite web sites, our Mashup technologies can dynamically generate
> text-to-speech audio of the mash-up content. This feature is in support
> of the visually impaired as well as power users who want to listen to
> their aggregated data. Based on the presence of URL parameters, the
> Mashup server will generate an audio file and append an EMBED element to
> the mash-up content with the URL to the audio file. For example,
>
> Element t_embedElement = t_aDocument.createElementNS(null, "EMBED");
> t_embedElement.setAttributeNS(null, "id", "tts-embed");
> t_embedElement.setAttributeNS(null, "autostart", "true");
> t_embedElement.setAttributeNS(null, "width", "200");
> t_embedElement.setAttributeNS(null, "height", "20");
> t_embedElement.setAttributeNS(null, "src", request.serverUrl() +
> "/audio/" + t_audioIdString + ".aif");
>
>
> A Brazil Handler/Servlet Request object provides a serverUrl() which is
> seen above in the SRC attribute-- enabling any mash-up to be audible.
>
>
> Though it's easier to do this on server, I can of course generate a
> JavaScript which would use document.URL.
>
> So that's why I need a serverUrl() method. As for information about the
> client's IP address and browser, our Mashup server technologies also
> uses geo-location to provide contextual mash-up filtering and dynamic
> content transcoding based on client capabilities. I have not tested to
> see if Grizzlets support cookie access.
You will have to do some Request manipulation (my next post will
contains the code for doing that).
OK as usual, the documentation is lacking :-( This is my resolution for
this year....release 1.8.0 only based on documentation and bug fixes.
For a workaround (until I implement the missing methods), you can do:
import com.sun.grizzly.tcp.Request;
....
Request request = asyncConnection.getRequest().getRequest();
request.action(ActionCode.ACTION_REQ_HOST_ADDR_ATTRIBUTE);
request.action(ActionCode.ACTION_REQ_LOCAL_NAME_ATTRIBUTE);
request.action(ActionCode.ACTION_REQ_HOST_ATTRIBUTE);
request.action(ActionCode.ACTION_REQ_LOCAL_ADDR_ATTRIBUTE);
and then invoking the method below will gives you what you are looking at:
request.remoteAddr();
request.remoteHost();
Not simple, but at least you have a workaround until I implement those
missing method and more important, documents them :-)
Thanks!
-- Jeanfrancois
>
>
> Thanks again.
>
> --Zaid
>
> http://altmobile.com
>
>
>
> On Jan 7, 2008, at 10:57 AM, Jeanfrancois Arcand wrote:
>
>> Salut,
>>
>> Zaid Al-Timimi wrote:
>>> it does not seem that a Grizzlet can access server or client info
>>> from the AsyncConnection in onRequest(). Any way to get this?
>>
>> Good catch :-) This is missing right now. Can you tell me what you
>> need exactly so I can add it to the truck so you aren't blocked?
>>
>> Thanks!
>>
>> -- Jeanfrancois
>>
>>
>>> thanks.
>>> --Zaid
>>> http://altmobile.com <http://altmobile.com/>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscribe_at_grizzly.dev.java.net
>> <mailto:users-unsubscribe_at_grizzly.dev.java.net>
>> For additional commands, e-mail: users-help_at_grizzly.dev.java.net
>> <mailto:users-help_at_grizzly.dev.java.net>
>>
>