OPENSMUS HELP: OPENSMUS COMMAND LIST | ||
OpenSMUS also implements extended commands not available in Macromedia's Shockwave MultiUser server. Most are used for server administration purposes, but there are a few extensions to the DBObject commands that were planned to make the life of the multiuser developer easier. These commands will not produce an error when used with the Shockwave MultiUser server but you should probably check the response to "system.server.getVersion" to make sure you are connected to a OpenSMUS server before using them.
OPENSMUS SQL COMMANDS
system.SQL.executeQuery Description: Executes an SQL query through OpenSMUS's SQL gateway. OpenSMUS constructs a prepared SQL statement using the query and Lingo values supplied, which are automatically mapped to the corresponding SQL data types. This avoids the problem of quoting strings, a common issue in all SQL queries. For simple queries (containing no ? elements) the #values parameter is an empty list. Message recipient: system.SQL.executeQuery Content parameters: [#sql:"sql query ",#values:[]] Lingo example: sendNetMessage(system.SQL.executeQuery,anysubject, [#sql:"SELECT NAME,PHONE FROM ADDRESSES WHERE STREET=? AND NUMBER>?",#values:["California",1000]]) Server reply content: [["John Taylor","5551234"], ["Anthony Fields","5551432"]] Remarks: OpenSMUS will return each matching row as a separate list inside a master list, with the values converted from SQL types to the appropriate Lingo types.
system.SQL.executeUpdate Description: Executes an SQL update through OpenSMUS's SQL gateway. An SQL update is an instruction that does not return a selection (INSERT INTO, UPDATE, CREATE, etc.) OpenSMUS constructs a prepared SQL statement using the query and Lingo values supplied, which are automatically mapped to the corresponding SQL data types. This avoids the problem of quoting strings, a common issue in all SQL queries. For simple queries (containing no ? elements) the #values parameter is an empty list. Message recipient: system.SQL.executeUpdate Content parameters: [#sql:"sql query ",#values:[]] Lingo example: sendNetMessage(system.SQL.executeUpdate,anysubject, [#sql:"UPDATE ADDRESSES SET PHONE=? WHERE NAME=?",["5551234","John Taylor"]]) Server reply content: "UpdateOK", or a MUS error message Remarks: None
system.SQL.connect Description: Connects OpenSMUS to an SQL database. This command is usually not necessary, since OpenSMUS connects automatically to the default SQL database when the server starts, using the SQL directive in the OpenSMUS.cfg file. Each OpenSMUS server can only be connected to one SQL database at any given time, so this command will fail if a connection is already established. The parameters correspond to JDBC parameters for a database connection. Message recipient: system.SQL.connect Content parameters: [#userid:"name",#password:"",#driver:"org.hsqldb.jdbcDriver", #url:"jdbc:hsqldb:OpenSMUSSQL"] Lingo example: sendNetMessage(system.SQL.connect,anysubject, [#userid:"sa",#password:"",#driver:"org.hsqldb.jdbcDriver", #url:"jdbc:hsqldb:OpenSMUSSQL"]) Server reply content: "Connected", or a MUS error message. Remarks: By default this command can only be issued by users connected with administrative access level.
system.SQL.disconnect Description: Disconnects OpenSMUS from an SQL database. This command is usually not necessary, since OpenSMUS manages the default SQL connection automatically. Message recipient: system.SQL.disconnect Content parameters: none Lingo example: sendNetMessage(system.SQL.disconnect,anysubject, void) Server reply content: void Remarks: By default this command can only be issued by users connected with administrative access level.
OPENSMUS EXTENSIONS TO THE SYSTEM.SERVER COMMAND SET
system.server.restart Description: This command will restart the OpenSMUS instance remotely. The actual java process running on the host machine will not be destroyed, however. When this command is received all users will be disconnected and a new server instance will be spawned. All configuration files will be re-scanned when the server restarts. The server restart process takes an average of 15 seconds to complete, and all database files are also packed and reopened. Message recipient: system.server.restart Content parameters: None Lingo example: sendNetMessage(system.server.restart,anysubject,void) Server reply content: "ServerRestarted" Remarks: By default this command can only be issued by users connected with administrative access level.
system.server.disable Description: Prevents any new connections to the server. Current user connections will be unaffected. It is important to understand that even administrative users will NOT be able to connect to a disabled server, so if the administrative connection that issued the command is lost you will need to kill and restart the server process from the shell. This command can be reversed with the system.server.enable command, or with a server restart or reboot. Message recipient: system.server.disable Content parameters: None Lingo example: sendNetMessage(system.server.disable,anysubject,void) Server reply content: "ServerDisabled" Remarks: By default this command can only be issued by users connected with administrative access level.
system.server.enable Description: Reverts the effects of system.server.disable, and allows new connections to the server. Message recipient: system.server.enable Content parameters: None Lingo example: sendNetMessage(system.server.enable,anysubject,void) Server reply content: "ServerEnabled" Remarks: By default this command can only be issued by users connected with administrative access level.
system.server.disconnectAll Description: Disconnects all users from the server, including the administrative user that issued the command. This will cause all server movies and groups to be destroyed. Message recipient: system.server.disconnectAll Content parameters: None Lingo example: sendNetMessage(system.server.disconnectAll,anysubject,void) Server reply content: "DisconnectAll" Remarks: By default this command can only be issued by users connected with administrative access level.
system.server.sendEmail Description: Sends an email using the OpenSMUS server and the specified SMTP host. Message recipient: system.server.sendEmail Content parameters: [#sender:"sender@domain.com", #recpt:"email@domain.com", #subject:"Message subject", #smtphost:"smtphostname.com", #data:["Line 1 of the message","Line 2 of the message","Line 3, etc"]] Lingo example: sendNetMessage(system.server.sendEmail,anysubject,[#sender:"admin@yourdomain.com", #recpt:"email@youruser.com", #subject:"Testing email", #smtphost:"yourdomain.com", #data:["This is a test message.","There is no need to reply"]) Server reply content: "EmailAccepted" Remarks: None
OPENSMUS EXTENSIONS TO THE SYSTEM.MOVIE COMMAND SET
system.movie.getScriptCount Description: Returns the number of server side scripts for this movie. Message recipient: system.movie.getScriptCount Content parameters: None Lingo example: sendNetMessage(system.movie.getScriptCount,anysubject,void) Server reply content: 1 Remarks: By default this command can only be issued by users connected with administrative access level.
system.movie.reloadAllScripts Description: Reloads all server side scripts for this movie. Message recipient: system.movie.reloadAllScripts Content parameters: None Lingo example: sendNetMessage(system.movie.reloadAllScripts,anysubject,void) Server reply content: Remarks: By default this command can only be issued by users connected with administrative access level.
system.movie.reloadScript Description: Reloads one or more server side scripts in this movie. Message recipient: system.movie.reloadScript Content parameters: A list with script class names. Lingo example: sendNetMessage(system.movie.reloadScript,anysubject, ["myScriptClass"]) Server reply content: Remarks: By default this command can only be issued by users connected with administrative access level.
system.movie.deleteScript Description: Stops one or more server side scripts. Message recipient: system.movie.deleteScript Content parameters: A list with script class names. Lingo example: sendNetMessage(system.movie.deleteScript,anysubject,["myScriptClass"]) Server reply content: Remarks: By default this command can only be issued by users connected with administrative access level.
OPENSMUS EXTENSIONS TO THE SYSTEM.DBADMIN COMMAND SET
system.DBAdmin.ban Description: Bans an ip address or userid from connecting to the server for a specific time period. This command does not disconnect the user if it is currently connected (see system.user.delete.) The banned entry is stored in the server database and is preserved even if the server is restarted or rebooted. This commands expects a property list in the content portion of the message with the attributes #user and #timeToBan. #user is a string representing an ip address or an username, and #timeToBan is the duration of the banned entry in the server, in seconds. Message recipient: system.DBAdmin.ban Content parameters: [#user:"ip address or username", #timeToBan: howManySeconds] Lingo example: sendNetMessage(system.DBAdmin.ban,anysubject,[#user:"200.215.123.12", #timeToBan: 3600); sendNetMessage(system.DBAdmin.ban,anysubject,[#user:"MrX", #timeToBan: 604800) Server reply content: [#user:"200.215.123.12"] Remarks: By default this command can only be issued by users connected with administrative access level.
system.DBAdmin.revokeBan Description: Erases a banned entry from the server database. This commands expects a property list in the content portion of the message with the attribute #user, representing an ip address or an username. Message recipient: system.DBAdmin.revokeBan Content parameters: [#user:"ip address or username"] Lingo example: sendNetMessage(system.DBAdmin.revokeBan,anysubject,[#user:"200.215.123.12"); sendNetMessage(system.DBAdmin.revokeBan,anysubject,[#user:"MrX") Server reply content: [#user:"200.215.123.12"] Remarks: By default this command can only be issued by users connected with administrative access level.
system.DBAdmin.getBanned Description: Retrieves a list of banned user entries in the server database, including the expiration date for the ban. The list is returned as a list of property lists, each item corresponding to one banned user entry. Message recipient: system.DBAdmin.getBanned Content parameters: None Lingo example: sendNetMessage(system.DBAdmin.getBanned,anysubject,void) Server reply content: [[#user:"200.215.123.12",#expires:"2001/11/21 14:34:33"],[#user:"MrX",#expires:"2001/11/28 14:54:45"]] Remarks: By default this command can only be issued by users connected with administrative access level. The banned table is only checked for expired entries when the server is started or restarted, for performance reasons. The list returned by this command may contain expired entries, but these will be expurged automatically if a banned user or ip address tries to connect to the server after the expiration period has passed.
system.DBAdmin.getApplicationNames Description: Retrieves a list of application names for all DBApplication objects in the server database. Message recipient: system.DBAdmin.getApplicationNames Content parameters: None Lingo example: sendNetMessage(system.DBAdmin.getApplicationNames,anysubject,void) Server reply content: ["lobby","seabattle"] Remarks: By default this command can only be issued by users connected with administrative access level.
system.DBAdmin.getApplicationCount Description: Retrieves the number of DBApplication objects in the server database. Message recipient: system.DBAdmin.getApplicationCount Content parameters: None Lingo example: sendNetMessage(system.DBAdmin.getApplicationCount,anysubject,void) Server reply content: 3 Remarks: By default this command can only be issued by users connected with administrative access level.
system.DBAdmin.getAttributeNames Description: Retrieves a list with the names of all attributes declared in the server database, including the default ones. Message recipient: system.DBAdmin.getAttributeNames Content parameters: None Lingo example: sendNetMessage(system.DBAdmin.getAttributeNames,anysubject,void) Server reply content: ["CREATIONTIME","STATUS","USERLEVEL", "DESCRIPTION","PASSWORD","LASTUPDATETIME","LASTLOGINTIME"] Remarks: By default this command can only be issued by users connected with administrative access level.
system.DBAdmin.getAttributeCount Description: Retrieves the number of attributes declared in the server database, including the default ones. Message recipient: system.DBAdmin.getAttributeCount Content parameters: None Lingo example: sendNetMessage(system.DBAdmin.getAttributeCount,anysubject,void) Server reply content: 7 Remarks: By default this command can only be issued by users connected with administrative access level.
system.DBAdmin.deleteApplicationData (#all format) Description: This command is an addition to the standard system.DBAdmin.deleteApplicationData command, and it is included to make it easier for a developer to delete all ApplicationData objects created for a given application. The standard command supplied by Shockwave MultiUser Server requires a #text, #number or #range parameter that is used to match application data that is going to be deleted. Using the #all parameter an OpenSMUSserver will be able to match and delete all ApplicationData objects created for the specified application. Message recipient: system.DBAdmin.deleteApplicationData Content parameters: [#application:"applicationname",#attribute:#creationtime, #all:void] Lingo example: sendNetMessage(system.DBAdmin.deleteApplicationData,anysubject, [#application:"seabattle",#attribute:#creationtime, #all:void]) Server reply content: Matches the command message content Remarks: By default this command can only be issued by users connected with administrative access level.
OPENSMUS EXTENSIONS TO THE SYSTEM.DBAPPLICATION COMMAND SET
system.DBApplication.getApplicationData (#all format) Description: This command is an addition to the standard system.DBApplication.getApplicationData command, and it is included to make it easier for a developer to retrieve all ApplicationData objects created for a given application. The standard command supplied by Shockwave MultiUser Server requires a #text, #number or #range parameter that is used to match application data that is going to be returned. Using the #all parameter an OpenSMUS server will be able to match and retrieve all ApplicationData objects created for the specified application. Message recipient: system.DBApplication.getApplicationData Content parameters: [#application:"applicationname",#attribute:#creationtime, #all:void] Lingo example: sendNetMessage(system.DBApplication.getApplicationData,anysubject, [#application:"seabattle",#attribute:#creationtime, #all:void]) Server reply content: [[#shipname:"Cruise",#shipcolor:"Blue"], [#shipname:"Sub",#shipcolor:"Green"]] Remarks: By default this command can only be issued by users connected with administrative access level.
|