25 AĞUSTOS 2011, PERŞEMBE
Yuva.IO kontrol karakter sorunu
Websockets ve bir konsol Telnet üzerinden erişilebilir kullanan bir uygulama başlatıyorum. Bağlantı websockets ile kurulan ve konsol arasında bir iletişim yok. Garip bir sorun yaşıyorum:
- Eğer bir dize bir şey konsolda girildiğinde kurulmuş bir yuva için sürekli gönderirsem işe yarıyor.
- Eğer gönderdiğim bir dize alınan konsol kapsam görünüyor açık yeni bir yuva (emin değilim) çünkü hata ayıklama günlüğü görüyorum ve tarayıcı tarafı (websockets) bu uyarıları bana yeni bir bağlantı.
- Eğer yerel bir dize (yerine bir başka kapsamına alınan) gönderirsem doğru gönderdi. (hat yorumladı: müşteri.send(mesaj) )
Burada nodeJS kodu, bu sadece bir yuva kabul ve Bağlantı websockets bu yüzden şimdi bir test uygulaması olduğu dikkate paylaşıyorum:
// Sample based on: http://elegantcode.com/2011/05/04/taking-baby-steps-with-node-js-websockets/
// Changed for sockets.io 6.x => 7.x
var events = require('events');
var eventEmitter = new events.EventEmitter();
var http = require('http');
var socketIO = require('socket.io');
var static = require('node-static');
var port = 2000;
var clientFiles = new static.Server('./client');
var httpServer = http.createServer(
function(request, response) {
request.addListener('end', function() {
clientFiles.serve(request, response);
});
})
httpServer.listen(port);
console.log("Server running at port: " port);
var io = require('socket.io').listen(httpServer);
var webSocket = io.sockets;
webSocket.on('connection', function(client) {
client.send('Please enter a user name ...');
var userName;
eventEmitter.on('someOccurence', function(message) {
console.log("Received: " message);
client.send('Line Received');
var s = 'popo';
client.send(s);
//client.send(message);
});
client.on('message', function(message) {
console.log(message);
if(!userName) {
userName = message;
client.broadcast.send(message ' has entered the zone.');
return;
}
var broadcastMessage = userName ': ' message;
client.broadcast.send(broadcastMessage);
client.send("Repeated here: " message);
});
client.on('disconnect', function() {
var broadcastMessage = userName ' has left the zone.';
client.broadcast.send(broadcastMessage);
});
});
var lines = require('lines-adapter');
var net = require('net');
var server = net.createServer(function (socket) {
socket.write("Welcome to the Server\r\n");
lines(socket, 'utf8')
.on("data",
function(line) {
console.log("Line received: " line);
eventEmitter.emit('someOccurence', line);
}
)
.end("end",
function() {
console.log("End of Stream");
}
);
});
server.listen(1337, "127.0.0.1");
GÜNCELLEME:Ben sadece yuva ile test edilmiştir.bu sorun olmadan ıo 0.8.6 ve nodeJS 0.4.12. Gelecekte başvurmak için bu soruyu burada devam edeceğim.
CEVAP
24 Kasım 2011, PERŞEMBE
Sabit soket ile.ıo v0.8.6. Bu q/kapalı cevap verilmesi gerekir.
Bunu Paylaş:
Bir dize olmadığını kontrol 10 karakte...
Nasıl olursa NSString belirli bir kara...
Nasıl dize karakter ve boşluk içeriyor...
etkili bir şekilde kontrol dize Python...
Nasıl tek bir karakter bir dize varsa ...