Hello,
after some weeks of development, I think that now my new plugin is stable enough to be announced publicly here in the forum. With the help of this object plugin, you can build full featured network-enabled applications with AutoPlay Media Studio. With a few lines of Lua script and by dropping a single socket object on the page, you may build server or client projects, communicate with remote servers, exchange messages, check or send mail, chat, etc. Several example projects are included in the documentation, that were used during the development, to make sure that all functions work, and that no essential functionality is missing. That doesn't mean that the plugin can't get further enhancements - just that right now it already can do a lot.
The plugin ships with documentation in CHM format, which contains links to three example projects, so far. These are the projects:
1. A POP3 client
This example will show you how to connect to a remote POP3 mail server, retrieve the number of messages that are currently stored in the mailbox, the size of the mailbox in bytes, and information (sender, subject) of the 12 most recent messages that you received. The screen shows what you should expect to see if you run the demonstration project, and query a spammed mailbox, like mine (which I actually don't monitor at all).
2. A multi-user chat server
This example shows a working chat server for a multi-user chat room. I may have a chat server running with the parameters used in this example project, so you should change at least the nickname of the server before trying to run your own instance of it. The server announces itself to the internet and the connection parameters (ip address, port number) may be retrieved by the chat clients using the same nickname.
In other words, I implemented a mechanism that would allow you to host a chat server, even if you are on a dynamic IP address. Upon start, the server will try to announce its nickname, IP address and port on what it is listening, to a public database. The chat client will be able to retrieve these connection informations just by knowing the nickname, which of course should be the same in the server and client project.
Of course, if you run a server on the local network, you shouldn't announce it publicly. And if you are behind a proxy or a firewall, the IP address reported to the database may be wrong. You might to know a bit about NAT, port mapping, etc. if you plan to use this feature in such scenarios.
New messages received from any client are immediately echoed to all connected chat clients, in the same order as they are received. The server interface shows the connected clients (handle number and remote ip address), and offers the possibility to kick (disconnect) users individually.
The server re-publishes itself after 5 hours and 50 minutes, before the initial announcement expires (which happens automatically after 6 hours). If you don't re-validate your nickname, this info will be removed from the public database. Another server will be able to use the same nickname after the expiration. A good reason to use unique nicknames.
3. A chat client for the multi-user chat server
This is, of course, just a demonstration. You should implement your own protocol, show the chat in a pleasant interface. My intention was not to build the best chat client, but to get the communication working as it should. However, you might want to look at the code of these projects, to see how things were done. If you fire up this demo project, you may be able to connect to the demo chat server from item 2. But I won't keep this running for a long time - you should be able to fire up your own servers with ease.
Well, those are the demo projects currently available. I am going to implement a SMTP client soon, and include it as an additional example, so next you will be able to send mail directly from AutoPlay Media Studio. But give me a few days to gather my breath first.
This is not a free plugin, but you may try it for two weeks, so you can see if it fits your needs without any risk. All info about licensing can be found in the documentation. Finally, you will find a link to download the installer here.
Ulrich










Reply With Quote


