Oren Hurvitz wrote:AFAIK, only Channels are a safe method for prim-to-prim communications within a server. I guess it would be possible to write a script that uses a combination of channels and HTTP to allow it to be called both from prims inside the simulator, and from outside servers.
I know this thread is stale, but I am still struggling with a way to do prim-to-prim communication between worlds or across SIM borders.
I can communicate from a prim to an external server with llHTTPRequest, and this can return information. A prim in a different world or across a SIM border can poll my server to see if a message has been left for it, but polling uses up a lot of SIM resources, I'd rather not do this. Prims can llRequestURL to get a URL and send that to servers, but those URLs always have a port number in them. The WEB hosting company that I use, and most others, have a security requirement that they block all HTTP requests with port numbers. So I am unable to use those to asynchronously pass messages back to prims. I am setting up a server in my barn that allows URLs with port numbers, but to be honest my WEB hosting company in Ohio (I am in California) is more reliable than the server in my barn. It is difficult to make reliable scripted products that are dependent on this.
So my question to Oren is: How can a script in a prim use channels and HTTP to communicate with prims in a different world (across a SIM border)? Channels only work inside a region (world) and everywhere I turn HTTP is not allowed for prim-to-prim or not allowed for server-to-prim. (Prim-to-server is easy and reliable with llHTTPRequest, but that is only half of the equation).
It seems to me that the OpenSim developers threw out the baby with the bath-water. It was apparently possible for a script in a prim to make requests to servers on the same local area network, which is bad. But couldn't they have allowed prims to continue to communicate with each other and just disallowed communication with non-prim servers?
P.S. In some grids (like SL or InWorldz) it is still possible for prims to communicate with each other using llHTTPRequest to URLs returned by llRequestURL. Does this mean those systems have gaping holes in their security? Or do they allow prim-to-prim communication while not allowing prims to make requests to other severs on the LAN?