手机中,使用HTML5中引入的WebSocket技术来取代PC端基于flash的socket还是比较方便的(为了统一,直接使用websocket更方便,不支持websocket可以使用flash socket作为代理)。 我使用了Python + PHP作为服务端程序。

python版本的 WebSocket有好多,基于gevent或者twisted.web的都有。 我在查找过程中,发现了一个如下一个工具:http://autobahn.ws/   Autobahn provides Open-Source client and server implementations of WebSocket and WAMP.

其中,AutobahnPython 是我需要的.   AutobahnPython is a WebSocket / WAMP client and server framework based on Twisted. It’s conformant, scalable and flexible.

一个echo server例子如下:

 

 
import sys

from twisted.internet import reactor
from twisted.python import log

from autobahn.websocket import WebSocketServerFactory, \
                               WebSocketServerProtocol, \
                               listenWS

class EchoServerProtocol(WebSocketServerProtocol):

    def onMessage(self, msg, binary):
        print "sending echo:", msg
        self.sendMessage(msg, binary)

if __name__ == '__main__':

    log.startLogging(sys.stdout)

    factory = WebSocketServerFactory("ws://192.168.0.102:9009", debug = False)
    factory.protocol = EchoServerProtocol
    listenWS(factory)

    reactor.run()

发表评论

电子邮件地址不会被公开。 必填项已用*标注