I wrote this little server, and a simple client remote using Tk, using
the fabulous XMLRPC:
#!/usr/bin/ruby
require "xmlrpc/server"
require 'xmms'
s = XMLRPC::Server.new(8080, '172.17.0.3')
s.add_handler(XMLRPC::iPIMethods("xmms"), Xmms::Remote.new)
s.serve
This works fabulously, however for many calls (but not all), the client
gets an exception raised: RuntimeError: HTTP-Error: 500 Internal Server
Error
The exception is raised, but the command (e.g. prev, next, pause, play,
etc.) works perfectly. I think it might have to do with return type,
because functions that return a value, like title, do not raise the
exception. Should I wrap Xmms::Remote in some kind of proxy that
coerces the return type of methods into something XMLRPC likes?