In the previous page you learned how to create both a
flash client and php server side script to use and
handle socket data between each other. You also might
have written your first batch file to use PHP shells.
Here I can just give some leads on how to develop a
more rich PHP shell script to work with.
Notice how Flash uses XMLsockets to connect and
handle socket data? Well XML is growing ever larger
everyday, and you can build your flash client and php
shell script to handle XML statements. Right now the PHP
shell script just passes on any data to everyone it's
connected to. Well if you build an XML parser within
PHP, you can create attributes that give PHP directions
on what to do (like message only certain people, aka
private messages, or even set up IRC like commands).
So what steps must you take to advancing this simple
yet complex PHP script? Learning more PHP helps, but XML
would be the next step. XML gives you the ability to
create messages that both PHP and Flash can take apart
and understand. Given the example of:
- <CHATROOM
ACTIONS="private_message"
TO="Joe"
FROM="Fred"
MESSAGE="blah
blah" />
You can have the PHP shell script have a generic
parser that takes in anything with CHATROOM and checks
to see what ACTIONS it may have. Based on that, you can
see some other attributes it can contain, making this a
little more complex everytime. Now remember, you can
have the server itself send messages out to connected
sockets, but remember to terminate each message with a
zero byte. The best way I found out to do this is
something like this:
- $errormsg
=
'<SERVER TEXT="*NOTICE* Please choose a different
game title." />' .chr(0x00);
Notice that I have the normal text that I'm sending
out to the socket, but I have added a .char(0x00)
to the end of the message. This is a message that has
been terminated with a zero byte. Now flash will read
this message. Without it, flash just ignores the data
being sent to it completely.
Now since the PHP shell is running through command
prompt, debugging can actually be easy to setup. It will
be on your part to come up with some effective methods
to achieve this but, by using a PHP command print_r(
), you can see errors or variables that can be
displayed in the command prompt. It works just like the
normal print( ) command but it only
shows up in the command prompt window and has no overall
effect on the script.
Ok so you developed a flash client that connects to a
PHP shell script running by command prompt located on an
Apache 2 server. WHEW!! That is actually a lot to think
about! The flash client uses some simple functions and
methods to handle the incoming data and sending data.
The PHP shell script handles incoming socket
connections, incoming data, and spits out any data it
receives to all the sockets connected to it. The PHP
shell script also unsets any sockets that have
disconnected and closes them out.
You can download this ZIP file that contains the PHP
shell script, chat room FLA, and Batch file. It would be
recommended that you download this to read up on the
comments I have made in the PHP shell script. That way
you can get an understanding of how everything works!
I really hope you have learned a lot
from this tutorial! If you have any questions or
comments, don't delay. Just ask them in the
kirupa.com Forum.
After you post
your question, either I or some of the forum members
will answer it!
|
Raymond Fain aka
ObiAdmin
Arizona State University
[Army ROTC] |