您需要的是一端的套接字服务器
python和javascript端的客户端/请求服务器。
对于python服务器端,请参考
SocketServer,(也取自该示例),您需要确保的一件事是让套接字过去
NAT(可能是端口转发)。另一种选择是
Twisted一个非常强大的框架,我相信它具有通过发送数据的功能
NAT。
import SocketServerclass MyTCPHandler(SocketServer.baseRequestHandler): """ The RequestHandler class for our server. It is instantiated once per connection to the server, and must override the handle() method to implement communication to the client. """ def handle(self): # self.request is the TCP socket connected to the client self.data = self.request.recv(1024).strip() print "{} wrote:".format(self.client_address[0]) print self.data # just send back the same data, but upper-cased self.request.sendall(self.data.upper())if __name__ == "__main__": HOST, PORT = "localhost", 9999 # Create the server, binding to localhost on port 9999 server = SocketServer.TCPServer((HOST, PORT), MyTCPHandler) # Activate the server; this will keep running until you # interrupt the program with Ctrl-C server.serve_forever()在上面
Javascript有许多允许套接字连接的框架,这里有一些
Socket IO
例:
<script src="/socket.io/socket.io.js"></script><script> var socket = io.connect('http://localhost'); socket.on('news', function (data) { console.log(data); socket.emit('my other event', { my: 'data' }); });</script>- 你甚至可以使用
HTML5 Web Sockets
例:
var connection = new WebSocket('ws://IPAddress:Port');connection.onopen = function () { connection.send('Ping'); // Send the message 'Ping' to the server};另外,请看本书的一部分
Javascript: The Definitive Guide
,https://www.inkling.com/read/javascript-definitive-guide-david-flanagan-6th/chapter-22/web-sockets的第22章最后看看
jssockets
例:
_jssocket.setCallBack(event, callback);_jssocket.connect(ip,port);_jssocket.write(message);_jssocket.disconnect();
希望有帮助!



