Dynamic DNS service for HTTP-IN via Google App Engine
|
ElQ Homewood
Sleeps Professionally
Join date: 25 Apr 2007
Posts: 280
|
11-17-2009 00:18
From: Argent Stonecutter That's a bug in the LSL HTTP server, then. They said it had something to do with the difference between a file and a directory..I'll try to find where I saw that ..Haven't found it yet..it might have been in the scripting email list, I'll have to search. Does anybody know what this means? From: Wiki There is a cap of 64 in flight requests per script. This is based on the maximum number of pending events in LSL. After hitting the 64 request limit, the simulator cap server returns '503 Service Unavailable' to the inbound request.
|
Argent Stonecutter
Emergency Mustelid
Join date: 20 Sep 2005
Posts: 20,263
|
11-17-2009 01:57
From: ElQ Homewood Does anybody know what this means? It means that if more than 64 requests are made simultaneously, before the server has had a chance to return them, the 65th request will return a "503" failure to the client.
|
ElQ Homewood
Sleeps Professionally
Join date: 25 Apr 2007
Posts: 280
|
11-18-2009 03:28
AAh so it's the size of the queue. Good to know, I just couldn't figure it out lol. Thanks
I swear I saw where someone explained that about the '/' at the end of the url. I can't fricken find it now tho.
|
Argent Stonecutter
Emergency Mustelid
Join date: 20 Sep 2005
Posts: 20,263
|
11-18-2009 04:28
If you ARE really trying to get a directory index, you should always have the slash as part of the original URL... but you should get a redirect to the correct URL if the slash is required but missing. If the server behaves differently without the slash whether there's a ? or not, that's a bug in the redirect logic. If it's returning the directory index instead of doing a redirect, that's a bug in the protocol logic because that'll screw up relative URLs OR it's not really a directory and the / is a workaround for a bug in the parsing logic.
However it comes out, it's a server bug.
|
Kaluura Boa
Polygon Project
Join date: 27 Mar 2007
Posts: 194
|
Did LL block Google App Engine?
12-02-2009 08:42
One of the rare times I am at this end of the question... I've started to dig seriously into http-in and to use the pseudo-DNS provided by Darien Caldwell. It worked exactly once. Just for the record: [5:15] Object: Added I was very happy and I started something more ambitious but it totally failed... and I went back to this very simple script which also fails: string DNS = "http://mystuff.appspot.com/?type="; // Not the real URL
string MyService = "google"; // Fake data string MyURL = "http:/nowhere.org/"; // to test the system
key Request;
default { on_rez(integer param) { llResetScript(); } state_entry() { llOwnerSay("Updating"); // DEBUG llOwnerSay(DNS + "update&name=" + MyService + "&url=" + llEscapeURL(MyURL)); // DEBUG Request = llHTTPRequest(DNS + "update&name=" + MyService + "&url=" + llEscapeURL(MyURL), [], ""); }
touch_start(integer total_number) { if (llDetectedKey(0) != llGetOwner()) { return; } llOwnerSay("Cleaning"); // DEBUG Request = llHTTPRequest(DNS + "remove&name=" + MyService, [], ""); }
http_request(key id, string method, string body) { llOwnerSay("http_request"); // DEBUG if (id == Request) { llOwnerSay("Service '" + MyService + "': " + body); } } }
I don't understand why but it just doesn't work from within SL. I added the reset on rez to test in various regions where I obtained always the same result: http_request() never happens. Period. And my App Engine Dashboard shows no access either, of course. If I use the URL in a browser, it works. So... Did LL block Google App Engine? Or else, is there something I overlooked?
|
ElQ Homewood
Sleeps Professionally
Join date: 25 Apr 2007
Posts: 280
|
12-03-2009 05:02
The fact that it works from a browser but not from the app engine suggests it's the same port problem those on other hosts have had. Sounds like maybe the app engine has blocked that outbound port. The difference is that from a browser, the communication is being sent from your desktop, which generally doesn't have any limits on outbound traffic, so you can send out to any port you want. Host servers aren't open like that.
Yeah, all-in-all..http-in is pretty damn useless for most applications you'd want it for.
|
Argent Stonecutter
Emergency Mustelid
Join date: 20 Sep 2005
Posts: 20,263
|
12-03-2009 06:41
From: ElQ Homewood The difference is that from a browser, the communication is being sent from your desktop, which generally doesn't have any limits on outbound traffic, so you can send out to any port you want. Host servers aren't open like that. If I had a colo, virtual or otherwise, that was blocking any outbound port... I'd be looking for a new hosting facility post haste.
|
Kaluura Boa
Polygon Project
Join date: 27 Mar 2007
Posts: 194
|
Everything works!
12-03-2009 19:50
There is no problem of blocked port or whatever... My script was bugged. llHTTPRequest() --> http_response() *R.E.S.P.O.N.S.E* llRequestURL() --> http_request() So my embryo of script becomes: string DNS = "http://mystuff.appspot.com/?type="; // Not the real URL string MyService = "google"; // Fake data string MyURL = "http:/nowhere.org/"; // to test the system key Request; default { on_rez(integer param) { llResetScript(); } state_entry() { llOwnerSay("Updating"); // DEBUG llOwnerSay(DNS + "update&name=" + MyService + "&url=" + llEscapeURL(MyURL)); // DEBUG Request = llHTTPRequest(DNS + "update&name=" + MyService + "&url=" + llEscapeURL(MyURL), [], ""); } touch_start(integer total_number) { if (llDetectedKey(0) != llGetOwner()) { return; } llOwnerSay("Cleaning"); // DEBUG Request = llHTTPRequest(DNS + "remove&name=" + MyService, [], ""); } http_response(key id, integer status, list metadata, string body) { llOwnerSay("http_RESPONSE"); // DEBUG if (id == Request) { llOwnerSay("Service '" + MyService + "': " + body); } } }
Et voilĂ ! (Chat log fixed to match my fake data... Invalid URL.) [19:31] http-in test3: Updating [19:31] http-in test3: http://mystuff.appspot.com/?type=update&name=google&url=http%3A%2Fnowhere%2Eorg%2F[19:31] http-in test3: http_RESPONSE [19:31] http-in test3: Service 'google': Updated I haz a happy! =^_^=
|
ElQ Homewood
Sleeps Professionally
Join date: 25 Apr 2007
Posts: 280
|
12-04-2009 02:06
From: Argent Stonecutter If I had a colo, virtual or otherwise, that was blocking any outbound port... I'd be looking for a new hosting facility post haste. I certainly agree, but the major hosts people have tried all do this. I'd much prefer to use a paid host rather than my own server. If you have suggestions of hosts which do work with http-in, I'd be glad to listen 
|
Argent Stonecutter
Emergency Mustelid
Join date: 20 Sep 2005
Posts: 20,263
|
12-04-2009 02:27
From: ElQ Homewood I certainly agree, but the major hosts people have tried all do this. What do you mean by a "major hosts people"? Cloud hosts? Or things like Rackspace?
|
ElQ Homewood
Sleeps Professionally
Join date: 25 Apr 2007
Posts: 280
|
12-04-2009 06:13
I mean, the major hosts that people have tried. Godaddy, 1and1, HostGator..scripters on the email list and here have tried them and not been able to send out on the http-in port. Never tried Rackspace tho
|
Argent Stonecutter
Emergency Mustelid
Join date: 20 Sep 2005
Posts: 20,263
|
12-04-2009 06:22
I'm sure glad I've never bothered with any of the "K-Mart" hosting companies then.
|
ElQ Homewood
Sleeps Professionally
Join date: 25 Apr 2007
Posts: 280
|
12-04-2009 06:27
Well, people have tried all kinds, but yeah, the big names cuz of the low prices. I'm still trying to find a host though, I don't want to be dependent on my own connection perpetually, I'd prefer that to be a backup.
|
Argent Stonecutter
Emergency Mustelid
Join date: 20 Sep 2005
Posts: 20,263
|
12-04-2009 06:34
I use JohnCompanies virtual colo.
|