Verileri tarayıcımdan (Chrome) bir nodejs sunucusuna aktarmaya çalışıyorum ve korkunç bir sorun yaşıyorum.Nodejs & websockets
<script src="./Socket.IO/socket.io.js"></script>
<script>
io.setPath('./Socket.IO/');
var socket=new io.Socket('xxx.xxx.xxx.xxx');
socket.on('connect',function(){
alert('connect');
});
socket.on('message',function(msg){
alert('message'+msg);
});
socket.on('close',function(){
alert('close');
});
socket.on('disconnect',function(){
alert('disconnect');
});
socket.connect();
</script>
görünen olan tek uyarı 'yakın' uyarıdır:
Temelde, tarayıcıda görüntülenen bu kodu var.
İşte benim sunucu kodu:
var http=require('http');
var io=require('./Socket.IO-node');
var server=http.createServer(function(req, res){
// your normal server code
res.writeHeader(200, {'Content-Type': 'text/html'});
res.writeBody('<h1>Hello world</h1>');
res.finish();
});
var socket=io.listen(server,{transports:websocket,port:8080});
socket.on('connection',function(client){
console.log('connection');
});
Sen konsola bağlantıları günlüğe çalışıyorum görebilirsiniz, ama hiçbir şey gösterir. Ben googling oldum ve http://github.com/LearnBoost/Socket.IO-node adresindeki Socket.IO örnekleriyle çalışmaya çalışıyorum ve hiçbir şey benim için çalışıyor gibi görünmüyor ...
Herhangi bir işaretçiyi çok takdir ediyoruz.
Düzenleme: Merhaba,
Ben ettik şimdi aşağıdaki sunucu kodu var:var http=require('http');
var io=require('./Socket.IO-node');
var server=http.createServer(function(req, res){
//your normal server code
res.writeHead(200, {'Content-Type': 'text/html'});
res.write('Hello world');
res.end();
});
server.listen(8124);
server=io.listen(server);
server.on('connection', function(client){
console.log('EOH connected');
sys.log('EOH connected');
});
server.on('clientConnect',function(client){
console.log('EOH connected');
sys.log('EOH connected');
});
server.on('clientDisconnect',function(client){
console.log('EOH disconnected');
sys.log('EOH disconnected');
});
Ve aşağıdaki istemci kodu:
<script>
window.onload=function(){
io.setPath('./Socket.IO/');
socket = new io.Socket('localhost', {'port': 8124});
socket.connect();
socket.send('xxx');
}
</script>
İstemci kodunu de yüklediğinizde localhost: 8124, bir tür 'clientConnect' olayının işlenmesini beklerdim. Ayrıca soket nesnesine veri gönderiyorum ve sunucuda görünen hiçbir şey yok ... Tamamen güdük. Şimdi node-websocket-server'ı kullanıyorum (http://github.com/miksago/node-websocket-server).
Çözüm: git clone git: --recursive
Kullanım --recursive bayrağını //github.com/LearnBoost/Socket.IO.git. Doh!
Hey, teşekkürler. Verdiğiniz kodu denedim ve sunucu tarafı konsolunda hiç ileti alamıyorum; ( – Eamorr
Düğüm örneğinizin bağlantı noktasını açmak için yeterli hakları var mı? Belki de bu örneklerin çalışmadığı bir nedendir. sudo düğümü server.js Ayrıca yapar merhaba dünya çalışma edin http: // localhost: 8124/- temel düğümle - hayır 'merhaba dünya' o zaman sorun uygulamanızın sunucu kısmı ile olan varsa? .js konuşlandırma Eğer öyleyse, ilk önce onu çalıştırmayı deneyin Socket.IO olmadan Ayrıca, tarayıcıdaki hata konsolunu da kontrol edin: eğer başka j'ler başarısız olursa, bağlantı yöntemi çalıştırılamayabilir: –
Bazı dosyaların eksik olması da mümkündür. Şu anda github yüklemelerinde eksik. Git checkout'u yapmaya çalışın: Zip arşivi indirmek yerinegit clone git: //github.com/LearnBoost/Socket.IO.git --recursive . –