DreamLight Interactive

DreamLight Director Talisman

DreamLight.com

Search/Index Help
Click to view DreamLight's 3D Animation Demo Reel
20+ Years of Award-winning Multimedia, 1987-2007

Don’t Be Shy, Wire it up to the Web with NetLingo
& DreamLight Director Talisman Tips & Tricks

DreamLight NetLab

Previous Contents Next

The early days of creating isolated multimedia on CD-ROM are over. In today’s wired world, everybody wants to be connected, with good reason. There are so many fascinating things you can do by wiring multimedia to the Web, it’s mind boggling. Once you clear the initial hurdles, it’s really not that difficult to connect your multimedia to the web using the powerful Macromedia Director.

During the early development of our on-line game, Quipples, the Internet game show of satirical riddles, I ran into quite a few problems trying to get the project to run properly through a proxy. I needed a controlled environment in which I could safely test my NetLingo. So, I created the DreamLight NetLab, as seen above.

Much of my trials and tribulations with NetLingo can be seen below in excerpts from the Direct-L and Shocker mailing lists including some never before published tips and tricks. Armed with the following NetLingo tips, and DreamLight NetLab, you should be able to easily avoid some of the pitfalls that slowed me down.

What are you waiting for? Go wire your multimedia up to the web! See you on-line...

Enjoy,

Michael Scaramozzino

Michael Scaramozzino
President and Creative Director

DreamLight Director Talisman
Director Tips & Tricks

Authorized Macromedia Developer

Contents

Top

Sending E-mail from Director

Top

Date: Jul. 26, 2001

Please recommend a way I can include an e-mail link in a projector without
having a browser open up when the link is clicked.  Thanks.

You can use an editable field to let the user enter their message, then send that to a cgi script like formmail (using postNetText) on your web server to send the message. Then no browser or third party Xtra is required.

-MikeS

Managing Multiple Network Streams

Top

Date: Jun. 20, 2001

I think you're supposed to be able to use N streams, but as we
old-time Director folks know, things aren't usually that easy...

What I did to manage multiple streams in Quipples was to create a NetStack object that handles all network requests. I push any number of NetOp objects on it and it pops them off and executes them one at a time. It follows the current NetOp and reports on its progress notifying the requesting object when a specific requested NetOp has completed.

This way I can initiate any number of network requests and my network manager executes them one at a time. If I really need to run them concurrently, I can initiate multiple NetStack objects, one for each true stream I wish to manage. I can even prioritize NetStacks or individual NetOp objects...

-MikeS

Common ProxyServer Questions

Top

Date: Aug. 24, 2000

I was reading some of your posts on Direct-L (how I found out about DreamLight NetLab)

Cool, I'm in the process of gathering them together and posting a new NetLingo page to our DreamLight Director Talisman, Should be posted sometime next week.

and I think I've run across the same problem you did - our program craps out on GetNetText calls - sometimes. Never a problem via dial-up, and the program works fine at several different companies which I know have firewalls, but we've found one so far (Wall St. Journal) where it's going into an endless loop waiting for the getnettext results - sounds like your "60 second" bug.

Could be... if you're using proxyServer() already. If you're not using proxyServer() then it just might not be getting through at all (since it might need proxyServer()). You can test this in the NetLab by turning proxyServer() on and off and trying to getNetText the URL in question. If it gets through when proxyServer() is off, then you don't need it, in that instance. If it can't get through at all, then try turning it on. The problem we ran into is only on certain combinations of proxies/servers and it lets you through, but then it stalls out for up to 60 seconds before netDone() goes TRUE.

Did you find any work around to this problem?

Yes and no... We couldn't find a way to stop the 60 second stall when accessing certain sites through certain proxies. We didn't have any info on how the network libraries might be handling things, so we were pretty much in the dark... What I ended up doing as a temporary workaround was setting a flag if the user was running through a proxy (known because they entered data to turn on proxyServer() in our proxy dialog) and allowing an extra 60 seconds before we gave up on the connection. I added another thermometer readout to our ioSCOPE communicator to show the stall time. So at least if it stalls, the user still sees something moving and knows to wait, and how long before it gives up...

Does it have anything to do with the proxyserver() command?

Yes, this particular stalling problem only happens when using the proxyServer() command to access through a proxy (only certain combinations of proxies/servers). Otherwise you're going direct without a proxy. It also only happens when run as a projector, or authoring (through proxyServer). It does not happen when run as shockwave through Netscape where Netscape uses it's own code to communicate with the proxy (haven't tested in IE). So I think it has something to do with Director's network libraries.

I think they might have their proxy server disabling Port 80...

If they do, it would most likely block all access (until you use proxyServer()), not just create a 60 second delay like what I was getting.

If I threw up a dialog box for a user to input info to pass to the proxyserver() function, should they enter my IP address (where the text file is) as the second argument?

No, they would enter the IP (or url) of their own proxy server. It's the same setting that they would have to enter into Netscape's proxy settings to be able to get out onto the web. It should look like this:

proxyServer( #http, "123.456.789.123", 8080 )

or like this...

proxyServer( #http, "proxy.mydomain.com", 8080 )

Of course substitute your own proxy address, and port number if it's different.

What number should they use for port?

I think the default is 8080, I'd try that... also check Netscape's proxy settings since they should be the same. Unless Netscape is set to some URL that automates the proxy set up. MediaOne had a JavaScript routine set as the URL which told Netscape the real URL and port to use. I had to read the Javascript routine to figure out what the real proxy URL and port were.

Sorry to ask such dumb questions, but I'm fairly new to NetLingo and am finding this particular function very sparsely documented...

Not at all! Join the club... the freewheelin' proxyServer() had me pulling my hair out. I got so frustrated, that I had to write the NetLab just to test the thing... and even then proxyServer() still causes stalls in some instances... ;-)

Hope it helps!
Good Luck!
-MikeS

Using ProxyServer()

Top

Date: Aug. 23, 2000

The question... when-where-how in lingo do you use the command, for example:

proxyServer #http,"123.456.789.100",80

I don't understand where you would use it (on startmovie...set it once) or use it everytime you use a getNetText command. I'm just generally cornfused about how to use it. I've searched the usual sites and haven't found any examples of its use. Appreciate any help.

You only need to issue it once at the beginning, before issuing your first getNetText. It remains in effect until set to something else. This should do the trick (I think 8080 is usually the default port for an http proxy).

on startMovie
   -- set http proxyServer to address "123.456.789.100" on port 8080
   proxyServer( #http, "123.456.789.100", 8080 )
end 

Beware however that we have encountered what appears to be a problem in the D7/D8 Network libraries that causes a delay (sometimes up to a minute) when using proxyServer through some proxies accessing some sites. What happens is that netDone does not turn TRUE until well after the download/preload is complete. It happens when run as a projector or authoring but not as Shockwave in Netscape (which uses its own net libraries). My best guess is that Director or the proxy is waiting for something from the other or from the server, and then times-out when it doesn't receive it.

Good Luck,
-MikeS

Perl to Director Lingo Interface Tools

Top

Date: Aug. 1, 2000

Is it possible for you to share/point us to these Lingo/Perl translation tools?

Here are mine...

I simply use property lists in Director and hash arrays in Perl.

Here are a few snippets of interface code that are similar to what I've created for Quipples: The Internet Game Show of Satirical Riddles. http://Autitons.com

Perl is quite a bit trickier than Lingo, so PLEASE tread with caution... This code in particular uses advanced techniques such as references, recursion etc... ;-)

THE FOLLOWING CODE IS PROVIDED HERE FOR INSTRUCTIONAL PURPOSES ONLY. YOU MAY USE IT IN YOUR OWN PERL SCRIPTS PROVIDED THAT THE COPYRIGHT LINES APPEAR AS FOLLOWS IN EACH ROUTINE...

# (C) 2000 DreamLight Incorporated. All Rights Reserved. 
# DreamLight.com, Autitons.com

THE COPYRIGHT LINES MAY NOT BE REMOVED OR MODIFIED IN ANY WAY. THANK YOU! THIS CODE IS STILL UNDER DEVELOPMENT. IT IS NOT GUARANTEED TO WORK IN ALL CASES. DREAMLIGHT MAKES NO WARRANTIES WHATSOEVER REGARDING THE FOLLOWING CODE OR IT'S USE. USE AT YOUR OWN RISK.

sub item_to_lingo_str {
  # (C) 2000 DreamLight Incorporated. All Rights Reserved. 
  # DreamLight.com, Autitons.com

  # check a single Perl item reference, determine it's type
  # if it's a scalar, simply dereference it and return its value as a string
  # if it's an array or hash, pass it on for further processing...

  my ($item_ref, $string, $item);
  $item_ref = shift @_;
	
  $string = '';
	
  SWITCH: { $_ = $item_ref;
    if (/^SCALAR/) { 
       # Dereference the item reference and return the scalar
       $item = $$item_ref; #dereference item
       if ($item =~ /^SCALAR|^ARRAY|^HASH/) { 
           # the item is itself a reference so it must be dereferenced
           # call item_to_lingo_str again using recursion
           $string = &item_to_lingo_str( $item );
       } else { # Not a reference so return it as a string
	   $string = $item;
       }
       last SWITCH;
    }

      if (/^ARRAY/)  # Pass the array reference off for further processing
         { $string = &array_to_lingo_list( $item_ref ); last SWITCH; }

      if (/^HASH/)  # Pass the hash reference off for further processing
         { $string = &hash_to_lingo_proplist( $item_ref ); last SWITCH; }
      $string = "_ERROR_NO_REF_PASSED_";
   }

   return $string;
}


sub array_to_lingo_list {
   # (C) 2000 DreamLight Incorporated. All Rights Reserved. 
   # DreamLight.com, Autitons.com

   # Take a Perl array reference and convert the array's contents 
   # to a Lingo list formatted as a string.
   my ($array_ref, @array, @list_array, $item);
	
   $array_ref = shift @_;
	
   @array = @$array_ref; # dereference the array from the array reference
	
   #build an array with all values converted to lingo strings
   @list_array = ();
   foreach $item ( @array ) {
      push( @list_array, &item_to_lingo_str( \$item ) );
   }
	
   # return the array as a lingo formatted list
   return "[ "	. join( ", ", @list_array ) . " ]";
}


sub hash_to_lingo_proplist {
   # (C) 2000 DreamLight Incorporated. All Rights Reserved. 
   # DreamLight.com, Autitons.com

   # Take a Perl hash reference and convert the hash's contents 
   # to a Lingo property list formatted as a string.
   my ($hash_ref, %hash, @list_array, $key);
	
   $hash_ref = shift @_;
	
   %hash = %$hash_ref; # dereference the hash from the hash reference
	
   #build an array with key/value pairs formatted as text "#prop:value" pairs
   @list_array = ();
   foreach $key ( keys %hash ) {
      push(@list_array,'#'.$key.':'.&item_to_lingo_str( \$hash{$key} ) );
   }
	
   # return the array as a lingo formatted list
   return "[ "	. join( ", ", @list_array ) . " ]";
}

The above routines can be used to pass a Perl hash to Director as a property list like this:

sub return_lingo_stats {
   # (C) 2000 DreamLight Incorporated. All Rights Reserved. 
   # DreamLight.com, Autitons.com

   my($stat_hash_ref) = @_;
	
   print "Content-type: text/plain\n";
   print "\n";
   print &item_to_lingo_str( $stat_hash_ref );
	
}

&return_lingo_stats( \%file_stats ); #pass file_stats by reference
# and return a lingo property list formatted as a string.

This Perl script is then queried from inside Director in a routine like this:

on getFileStats Me
  -- query stats.cgi on the server using getNetText
  -- through the NetStack object using the GetText netOp object...
  -- to check file modification dates
  global gBinPath, gNetStack
  
  filePathStr = Me.FilePath.givePathStr()
  
  gNetStack.doNetOp( #GetText, 
    [ gCGIPath.givePathStr() & "stats.cgi/" & filePathStr, Me ] )
  
end getFileStats

filePathStr is a string returned from my cross platform FilePath object This is then passed to gNetStack which is my Internet communications manager which initiates a GetText netOp object (which manages a call to getNetText and returns the result in netTextResult when it arrives...)

Does anyone on the list know any good sources for PERL/CGI?

I taught myself most of what I needed to know with the following book: "Perl Core Language: Little Black Book" by Steven Holzner. There were a few minor errors in the book, but for the most part, it was a good read (if you like programming books that is... ;-).

I do all my Perl programming in BBEdit and test with MacPerl before uploading to a Unix server. I also relied heavily on the DreamLight NetLab to test my Lingo Internet communications.

Hope this helps... :-)
-MikeS

Using getStreamStatus with gotoNetMovie

Top

Date: July 19, 2000

>Has anyone found any problems using getstreamstatus with a gotonetmovie
>call? I'm finding that the loading bar I'm using (actually pretty much
>straight from the Library) is just sticking on 0.

Are you using ProxyServer() by any chance? If so, I ran into a bug with ProxyServer() (or maybe the network libraries Director uses) causing a delay when dealing with certain proxy servers. Mediaone's roadrunner server showed the problem.

From what I could gather through my investigations it appears that there may be a bug in the network libraries that Director 7.0.2 uses (I haven't tested it in D8). It seems that certain proxy servers may be waiting for something from Director or vice versa. Eventually the proxy server times out and finally goes on to the next thing. During this wait your connection may appear to stall out.

Here are some excerpts from my initial report on the ProxyServer() issue:

1) Streaming swa audio through the proxy (by setting the url of the swa member and then playing) hangs for almost exactly a minute after the file has streamed in. Checking streamstatus reports "InProgress" for 60 seconds after the file is done. Both in authoring and projectors.

Workaround, I can simply issue a netAbort(swaMember.url) as soon as bytesSoFar matches bytesTotal. That works...

2) A similar problem however occurs when using preloadNetThing or downloadNetThing. It comes in fine, but then sits there reporting "inProgress" for almost exactly 60 seconds before netDone becomes true and state finally changes to "Complete"

I'm trying to use downloadNetThing and I can't netAbort() that when bytesSoFar matches bytesTotal because the file ends up in the cache and never makes it to the actual destination.

So, I then tried using preloadNetThing instead and netAbort() it when it's bytesSoFar matches bytesTotal. I then issue a downloadNetThing on the same URL and it moves the file from the cache to the destination and returns an immediate netDone(). I thought that was the solution...

Unfortunately if I then immediately issue a new preloadNetThing on another file, that hangs on "Connecting" for almost exactly 60 seconds if the proxy is on...

Without using ProxyServer(), there is no delay on any of this...

It seems that the server and/or network Xtra running through a proxy in Director 7.0.2 (MacOS 8.6 + mediaOne cable modem) is waiting for something else between network downloads and only giving up after a 60 second time out.

I don't think it's the proxy itself, since Netscape has no trouble. If I manually enter the same proxy settings in Netscape, clear the cache, and then manually access the same files in Netscape they load immediately without any such 60 second pause between downloads...

Here's an excerpt to Shocker regarding running a controlled test through a proxy using the DreamLight NetLab, a MIAW Xtra I wrote to help test Director's network operations and try to find a solution to this problem.

1) It works fine with no delay when run as Shockwave through Netscape. In that case, the Lingo code is identical, so we know it's not a problem with the Lingo code itself.

2) In that case, the only real difference is that Shockwave is relying on Netscape's communication with the proxy rather than Director's communication with the proxy.

I had a few people try it through various proxy servers. It seems some servers stalled more than others. But they only stalled when run in Director or a projector. There was no stall when run as Shockwave in Netscape 4.7. I have not tested any of this in D8.

ProxyServer Stall, More Hard NetLab Data

Top

Date: Mar. 5, 2000

> I get a 60 second stall between all net requests.
It may be a number your proxy is responsible for rather than Director,

Yes, Good Point!

I agree that the Proxy could be timing out waiting for something from Director, rather than the other way around. Or it could even be waiting for something from the Server, since it only happens when pulling from some servers such as go.com. However, I still think that even if it is a proxy or server timeout, that Director is not communicating with the proxy properly, for a couple of reasons...

1) It works fine with no delay when run as Shockwave through Netscape. In that case, the Lingo code is identical, so we know it's not a problem with the Lingo code itself.

2) In Netscape, the only real difference is that Shockwave is relying on Netscape's communication with the proxy rather than Director 7's communication with the proxy.

Since Netscape has no problems, the proxy and web server are most likely OK. If there is some type of conflict or oddity between the server and the proxy, then Netscape may have a workaround built in that Director may lack...

Does anyone out there know what the specific differences may be, between the way D7 communicates through ProxyServer(), and the way Netscape communicates with a Proxy? Something must be different, and D7's appears to be somewhat problematic.

Since you see a 14 second delay when pulling them through your proxy, are there any timeouts set that you can see in your proxy configuration that may be 14 or 15 seconds? Since I'm using MediaOne's proxy, I don't really have any way to check anything about the Proxy itself. All I can do is run tests through it.

The file size numbers below were bothering me until I realized that the
page we are testing has dynamic elements,

Yes, I wasn't really worried about the sizes though, mostly the 60 second delay. Here are a few tests on a more stable page just for comparison...

Test URL: http://info.go.com/doc/policy/privacy.html

Running NetLab as MIAW inside D7.0.2 (same config and procedure as before)
D7 ProxyServer( #http, "proxy.ne.mediaone.net", 8080 )

operation bytesSoFar & bytesTotal StallTimer (Secs:Ticks)
getNetText: 33.77K *59:33
getNetText: 33.77K *59:33
getNetText: 33.77K *59:29

Running NetLab as Shockwave inside Netscape Communicator 4.7
Netscape's http proxy set manually to: proxy.ne.mediaone.net, 8080
Clear Netscape's cache and ClearCache before each test

operation bytesSoFar & bytesTotal StallTimer (Secs:Ticks)
getNetText: 33.77K 00:12
getNetText: 33.77K 00:23
getNetText: 33.77K 00:22

-MikeS

ProxyServer Stall, Hard NetLab Data

Top

Date: Mar. 4, 2000

Ok, using NetLab as an xtra and nabbing I get up to 55699 and a stall for around 14 secs until I get a netDone. Interestingly, the byte count before the stall is always higher than the count reported when netDone is received for this url.

Here are some results from my NetLab tests on http://abcnews.go.com/index.html
Home system: D7.02, MacOS 8.6, StarMax 3000/200, 160MB RAM, 30MB for Director
MediaOne, Lancity personal cable modem

All results shown are when netDone goes TRUE. ClearCache before each test

Running NetLab as MIAW inside D7. D7 ProxyServer( #http, #stop )

operation bytesTotal bytesSoFar StallTimer (Secs:Ticks)
preloadNetThing: 56164 56164 01:00
preloadNetThing: 56120 56120 01:16
downloadNetThing: 63295 63295 00:13
downloadNetThing: 56164 56164 00:12
getNetText: 63282 63282 01:27
getNetText: 56020 56020 01:17

Running NetLab as MIAW inside D7.
D7 ProxyServer( #http, "proxy.ne.mediaone.net", 8080 )

operation bytesTotal bytesSoFar StallTimer (Secs:Ticks)
preloadNetThing: 63295 63295 * 59:33
preloadNetThing: 63295 63295 * 59:57
downloadNetThing: 63295 63295 * 59:33
downloadNetThing: 63295 63295 * 60:00
getNetText: 63294/63216 63294/63216 * 59:44
getNetText: 63294/63216 63294/63216 * 59:31
  before/after netDone()  

Running NetLab as Shockwave inside Netscape Communicator 4.7
Netscape's http proxy set manually to: proxy.ne.mediaone.net, 8080
Clear Netscape's cache and ClearCache before each test.

operation bytesTotal bytesSoFar StallTimer (Secs:Ticks)
preloadNetThing: 57049 57049 00:00
preloadNetThing: 57061 57061 00:00
getNetText: 64183 64183 00:11
getNetText: 56981 56981 00:11

Fwiw, when I use my tools in authoring or as a projector I see the same thing.

So at least we know it's not a problem with NetLab's Lingo...

Yeah, so when my tools piggybacked on top of Netscape's net stuff hit the abcnews.go page, it works just fine

Same here, running NetLab as SW inside NS, using the same proxy settings in Netscape works fine with NO delay whatsoever. Running NetLab inside D7 using ProxyServer() however, I get a 60 second stall between all net requests. Anybody know of anything inside Director's network libraries that has a 60 second time out by any chance?? I don't think it's a coincidence that all the stalls are almost exactly 60 seconds. The small discrepancies (<1sec) are most likely due to slight variations in timing between frames and network messages at run time.

Still don't know why some sites work and some don't -- different servers?

To me, it sure looks like there is a problem in D7's handling of ProxyServer() (or a problem in the network libraries that D7 relies on.) that only occurs when certain servers are accessed through certain proxies, and maybe only on the Mac.

NetLab is pretty cool, btw!

THANKS!!

-MikeS

ProxyServer Stall, The Hunt Continues...

Top

Date: Mar. 3, 2000

Hi Lewis,

Thanks for the reply! I REALLY appreciate it!

my proxy (Squid/2.2.STABLE5) work fine.

Great, it's a slippery one alright... Was this test on the Mac? What type of connection are you using, Mine's a MediaOne cable modem...

If you can try it again with the DreamLight NetLab, then we'd know we are both testing it with the same Lingo code at least... What happens for me is that some sites stall and the NetLab's StallTimer runs up almost exactly to 60 seconds from the last byte downloading till netDone() becomes true and I get a Complete status. If I abort and try another, that one hangs on Connecting until those 60 seconds have elapsed.

Do you know what proxy MediaOne is using?

I think RoadRunner uses a Microsoft DHCP server that has a bug in it, that sometimes causes problems for the Mac pulling up an IP address. Though this bug shouldn't be the problem, since I verify the IP and connection before running these tests. I'll have to look into their Proxy server further though, It may be a Microsoft proxy server, but I'm not sure.

http://macromedia.com/support/director/contents.html
This page is sent without content length in it's header.

What are you using to examine the header content?

http://abcnews.go.com/index.html
This file has a pragma no-cache meta tag.

Yes I noticed that but don't think it's the problem since this was just one example of a file with the 60 second delay. It happens to many, I'm only using web pages here as examples. I first noticed the problem when the ioSCOPE download's .cct files to update itself when run as a projector. To be sure it wasn't a problem on my server, or with my files, I did a quick search for simple web files that also exhibited the problem.

Here's another one, on my site, that also exhibits the delay... Actually any file on my site or on "go.com" have the same problem. http://Autitons.com/index.html

I assume you are doing your testing from authoring or a projector

Yes, the DreamLight ioSCOPE runs as a projector, so I'm most concerned with downloads in a projector and also during authoring for testing purposes.

-- do ya get the same behavior if you try it as a SW movie in Netscape
(I'm sure you know IE Mac uses the same net libraries as authoring/projectors)?

Great idea! I haven't tried it as a SW movie in Netscape but I have manually tested the proxy and URL's via Netscape itself which showed no delay. That's why I suspect it has something to do with D7's handling of the ProxyServer(). But I can run some tests via SW in Netscape, especially since the DreamLight NetLab is itself a dcr... I'll let you know the results. Have to run them at home over the weekend though since that's where my MediaOne cable modem is... Last couple of days I was hacking at this problem at home. Today I came to the office to work on other parts of the project (and to calm down a bit, since this is really driving me crazy right about now... ;-)

Thanks,
-MikeS

ProxyServer Problems, Solutions...
More Problems... More Info...

Top

Date: Mar. 1, 2000

Here's some more info on the ProxyServer stall problem as the hunt continues...

It may possibly be server (or server configuration) related.

If I pull up this file from Macromedia's web site using getNetText through the mediaOne proxy it comes in and completes without a problem...

http://macromedia.com/support/director/contents.html

But this file from ABC's server shows the 60 second delay from the time the last byte is loaded and the time netDone becomes true...

http://abcnews.go.com/index.html

They both come through as netMIME type: text/html when finally done, so I don't think it's a MIME problem.

It seems to me, that one is waiting for something it's not getting and it's giving up in 60 seconds. Does anyone know what it might be waiting for?

This only happens when I'm pulling them through the proxy server. They both work fine when I turn off the proxy and access them directly.

MacOS 8.6, D7.0.2, MediaOne cable modem

-MikeS

PS. I'm not really trying to use these particular web files, I just wanted a couple of high profile examples so I wouldn't be told that "my" server is just messed up... ;-)

ProxyServer Problems, Solutions, More Problems...

Top

Date: Mar. 1, 2000

Hey gang,

To get around the problem of MultiUser Xtra not working through a proxy, I ended up writing a Perl script that can be queried with getNetText to retrieve a file's last mod date, time and size before downloading it.

That works fine...

So then I went about creating an MUI dialog to allow the user to enter their proxy settings and then use them to set ProxyServer().

That works fine...

Then I came across some new problems. I'm wondering if anyone else out there has encountered these problems and if so if anyone has any better solutions...

1) Streaming swa audio through the proxy (by setting the url of the swa member and then playing) hangs for almost exactly a minute after the file has streamed in. Checking streamstatus reports "InProgress" for 60 seconds after the file is done. Both in authoring and projectors.

Workaround, I can simply issue a netAbort(swaMember.url) as soon as bytesSoFar matches bytesTotal. That works...

2) A similar problem however occurs when using preloadNetThing or downloadNetThing. It comes in fine, but then sits there reporting "inProgress" for almost exactly 60 seconds before netDone becomes true and state finally changes to "Complete"

I'm trying to use downloadNetThing and I can't netAbort() that when bytesSoFar matches bytesTotal because the file ends up in the cache and never makes it to the actual destination.

So, I then tried using preloadNetThing instead and netAbort() it when it's bytesSoFar matches bytesTotal. I then issue a downloadNetThing on the same URL and it moves the file from the cache to the destination and returns an imediate netDone(). I thought that was the solution...

Not so fast...

Unfortunately if I then immediately issue a new preloadNetThing on another file, it hangs on "Connecting" for almost exactly 60 seconds if the proxy is on...

When going directly there is no 60 second delay on any of this...

It seems that the network Xtra running through a proxy in Director 7.0.2 (MacOS 8.6 + mediaOne cable modem) is waiting for something else between network downloads and only giving up after a 60 second time out. Anyone out there know what it's waiting for? Or how to make it give up faster?

I don't think it's the proxy itself, since Netscape has no trouble. If I manually enter the same proxy settings in Netscape, clear the cache, and then manually access the same files in Netscape they load immediately without any such 60 second pause between downloads...

Any ideas would be greatly appreciated!! Anyone else out there wrestling with the proxyServer()... ;-)

-MikeS

PS. I created a neat little movie called DreamLight(R) NetLab(TM) to let me test all this stuff in better detail. It can control the proxy, cache, issue preloadNetThing, downloadNetThing, getNetText, netAbort and monitor the progress. Sort of like I did with the DreamLight(R) RAMLight(TM)...

MultiUser Xtra & ProxyServer() Problem

Top

Date: Jan. 13, 2000

It is also similar to Michael Scaramozzino's problem with ioSCOPE described in Direct-L on
Date: Fri, 17 Dec 1999 22:30:15 -0500
From: Michael Scaramozzino
Subject: NineOh/ioSCOPE (multiuser Xtra) Proxy fix test...

He got no Direct-L responses to help me out.

A couple of helpful people from Direct-L did offer to run my test where I had attempted to use proxyServer(). I had also posted some questions to the Shocker list but got no reply there at all. Since I couldn't find any further info about the problem, and no one had any definitive answers to offer, this is what I have surmised through my tests...

As far as I can tell so far in D7...

1) MultiUser Xtra does not appear to work with proxies.
2) MultiUser Xtra does not appear to use any info set with proxyServer()
3) MultiUser Xtra apparently can not be used to check dates through a proxy.
4) DownloadNetThing can not check dates either (which is why I was trying to use MultiUser Xtra in the first place)

I'm setting up a proxy here to run my own tests. I'm going to use a manual text update log and grab it with getNetText instead. It will simply be a list of files on the server with their last update dates. I wanted to avoid this since it's more prone to error and a little more work to read and parse.

The ioSCOPE is a projector that checks for updated media on the server when launched. This allows the ioSCOPE to update itself on the fly while it's running. When there are new poses or gestures for the character they will stream in while it's running. Currently it won't work through a proxy until I implement the manual update log though.

[Update 08/24/00: Actually wrote a Perl script to let the ioSCOPE query the server and it now works through a proxy... Quipples: The Internet game show of satirical riddles]

If MM is listening, here's a feature request, it would be fantastic if there was a simple getNetHeader() Lingo command that we could use to retrieve a file's header without downloading the entire file. Much like the command that MultiUser Xtra has.

-MikeS

BlastOff! The Award-winning 3D Animated Short film by Michael Scaramozzino - Special Edition DVD

Please Support Our Continuing Independent Film Making Efforts!
Order your Award-winning BlastOff! Special Edition DVD today!

BlastOff!™ Merchandise Available @ Telebites.com BlastOff! T-Shirts BlastOff! Hats BlastOff! Mugs BlastOff! Calendar, Prints & Posters BlastOff! Mousepads

Silver Sage Scrolls™ inspiration through the ages Available @ Telebites.com

To view this site properly, please upgrade to a browser that supports current Web standards.

 

 

BlastOff! Wins a Silver W3 Award in the Pioneering Category of Web Video - 3D Animation

BlastOff! Wins an Official Honoree Webby Award in the category of 3D Animation

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

DreamLight Incorporated, 323 Andover Street, Suite 6, Wilmington, MA 01887 USA, Telephone: 978-658-5110
Search/Index Top Help