开发者

python streaming TCP server with RPC

开发者 https://www.devze.com 2023-01-03 23:14 出处:网络
I have written a little streaming mp3 server in python.So far all it does is accept a ServerSocket connection, and begin streaming all mp3 data in its queue to the request using socket.send().I have i

I have written a little streaming mp3 server in python. So far all it does is accept a ServerSocket connection, and begin streaming all mp3 data in its queue to the request using socket.send(). I have implemented this to chunk in stream icy metadata, so the name of the playing song shows up in the client.

I would like to add playlist management to the server, so that I can manipulate the playlist of the running server. I have a vague idea that xmlrpclib would be suited to doing this, but I'm confused about two things:

  1. Whether it's possible/advisable to integrate ICY and XMLRPC on a single server and a single port.

  2. How to share state between the stream thread and the playli开发者_运维百科st, and manipulation thereof via xmlrpc.


Your initial attempt might be easier if you use two separate ports, each with its own server running in a separate thread. However, managing synchronization between the threads might be an annoying task in the long run.

ICY and HTTP are very similar, and if you've already implemented ICY on top of SocketServer, you could probably extend BaseHTTPServer.BaseHTTPRequestHandler to respond to both ICY and HTTP requests on the same port. Take a look at the standard library code for the BaseHTTPRequestHandler.parse_request() method, and think about how to override it in a subclass for a split personality.

Also, when you want to handle multiple concurrent requests using these classes, take a look at the SocketServer mixin classes.

0

精彩评论

暂无评论...
验证码 换一张
取 消