Python脚本连接到使用Nodejs创build的socket.io服务器

我使用nodejs在http:// localhost:8090上托pipe了一个HTTP服务器。

app.js文件

var fs = require('fs') , http = require('http') , socketio = require('socket.io'); var server = http.createServer(function(req, res) { res.writeHead(200, { 'Content-type': 'text/html'}); res.end(fs.readFileSync(__dirname + '/index.html')); }).listen(8090, function() { console.log('Listening at: http://localhost:8090'); }); socketio.listen(server).on('connection', function (socket) { socket.on('message', function (msg) { console.log('Message Received: ', msg); socket.broadcast.emit('message', msg); }); }); }); 

现在我写一个python脚本来使用套接字编程连接到这个服务器。

client.py文件

 #!/usr/bin/python # This is client.py file import socket # Import socket module s = socket.socket() # Create a socket object host = '127.0.0.1' # Get local machine name port = 8090 # Reserve a port for your service. s.connect((host, port)) s.send('Thanks for connecting.') s.close 

当我运行client.py文件时,我无法在服务器端收到“Thanks for connecting”消息。

我无法理解我要出错的地方。

Socket.io使用创buildWebSocket服务器。 在Python客户端中,您正在通过原始套接字发送纯文本。 你需要的是用于python的socket.io客户端库 。