4 <!-- include AutobahnJS .. that's all you need -->
5 <script src="../../lib/autobahn.min.js"></script>
6 <script language="javascript" type="text/javascript">
11 var mLog, mBus, mDestination, mObject, mInterface, mMessage, mArgs, mUri;
13 // RPC success callback
14 function myAsyncFuncSuccessCB(res) {
15 log_append("got result: " + res + "\n");
19 function myAsyncFuncErrorCB(error, desc) {
20 var str = error.desc ? error.desc : desc;
21 log_append("error: " + str + "\n");
24 window.onload = function() {
26 function onSessionAuthenticatedCB() { // WAMP session was authenticated
27 log_append("Session successfully connected.");
30 function onSessionConnectedCB(session) { // WAMP session was established
32 mSession.authreq().then(function() {
33 mSession.auth().then(onSessionAuthenticatedCB, myAsyncFuncErrorCB);
34 }, myAsyncFuncErrorCB);
37 function onSessionErrorCB(code, reason) { // WAMP session is gone
39 if (code == ab.CONNECTION_UNSUPPORTED) {
40 log_append("Browser is not supported");
42 log_append("Failed to open session, code = " + code + ", reason = " + reason);
46 mLog = document.getElementById('log');
47 mBus = document.getElementById('bus');
48 mDestination = document.getElementById('destination');
49 mObject = document.getElementById('object');
50 mInterface = document.getElementById('interface');
51 mMessage = document.getElementById('message');
52 mArgs = document.getElementById('args');
53 mUri = document.getElementById('uri');
55 // Connect to WAMP server
56 ab.connect(mUri.value, onSessionConnectedCB, onSessionErrorCB);
61 log_append("dbusSend: "
62 + mBus.options[mBus.selectedIndex].value + "\n\t"
63 + mDestination.value + "\n\t"
64 + mObject.value + "\n\t"
65 + mInterface.value + "\n\t"
66 + mMessage.value + "\n\t"
71 mBus.options[mBus.selectedIndex].value,
78 arglist.push(mArgs.value);
81 // Call dbusSend with bus type, destination, object, message and arguments
82 mSession.call("dbusSend", arglist).then(myAsyncFuncSuccessCB, myAsyncFuncErrorCB);
85 function log_append(message) {
86 mLog.innerHTML += message + '\n';
87 mLog.scrollTop = mLog.scrollHeight;
90 function clear_log() {
92 mLog.scrollTop = mLog.scrollHeight;
97 <center><h1>dbus-send</h1></center>
104 <option value="session">session</option>
105 <option value="system">system</option>
110 <td>destination:</td>
111 <td><input type="text" size="40" id="destination" value="org.gnome.ScreenSaver"/></td>
115 <td><input type="text" size="40" id="object" value="/"/></td>
119 <td><input type="text" size="40" id="interface" value="org.gnome.ScreenSaver"/></td>
123 <td><input type="text" size="40" id="message" value="SetActive"/></td>
126 <td colspan="2" align="center"><textarea cols="60" rows=6 id="args">[true]</textarea></td>
129 <td><input style="width:100%" type="button" value="send" onclick="dbus_send();"/></td>
130 <td><input type="text" size="40" id="uri" value="ws://localhost:9001"/></td>
134 <input type="button" value="clear log" onclick="clear_log();"/>
136 <pre id="log" style="height: 20em; overflow-y: scroll; background-color: #faa;"></pre>