私はnode.js、express.js、socket.ioなどすべての最新バージョンを使用しています...私は、人生の唯一の目的がテキストを吐き出し、それを経由して接続されたWebクライアントに送信することだけであるサーバーに接続しようとしていますsocket.io. テキストは、標準の行末を持つ文字列であり、最大データ レートは 1024 バイト/秒程度です。私のコード、コアビットはこのようなものです
var express = require('express')
, app = express()
, routes = require('./routes')
, user = require('./routes/user')
, server = require('http').createServer(app)
, io = require('socket.io').listen(server)
, path = require('path')
, dataSourcePort = 5000
, host = "10.0.1.32"
, dataStream = require('net').createConnection(dataSourcePort, host);
dataStream.setEncoding('utf8');
io.sockets.on('connection', function (socket) {
dataStream.on('data',function(data){
socket.emit("stuff",data);
});
});
app.configure(function(){
app.set('port', process.env.PORT || 3000);
app.set('views', __dirname + '/views');
app.set('view engine', 'jade');
app.use(express.favicon());
app.use(express.logger('dev'));
app.use(express.bodyParser());
app.use(express.methodOverride());
app.use(app.router);
app.use(express.static(path.join(__dirname, 'public')));
});
app.configure('development', function(){
app.use(express.errorHandler());
});
app.get('/', routes.index);
app.get('/users', user.list);
server.listen(app.get('port'), function(){
console.log("Express server listening on port " + app.get('port'));
});
これはすべてうまく機能しますが、データがクライアントに送信されなくなるため、時々ハングします。バッファが行のどこかに詰め込まれていると思いますが、よくわかりません。これを行い、スタッフィング部分を回避するより良い方法はありますか?