2011-07-09 29 views
7

Bir node.js sunucusunu hazır ve hızlı bir şekilde çalıştırıyorum ve socket.io sunucu tarafı ve chrome 12 client-side kullanarak bir websocket bağlantısı kurmaya çalışıyorum. . Bağlanmaya çalıştığımda, socket.io "non-socket.io yükseltmesini yok etme" ve kod işleyicimin kodunun çalışmadığını bildiren bir hata ayıklama iletisi çıkarır. Ayrıca istemci tarafında benim soketimin readyState 2 (KAPALI). readyState 2websocket problem: node.js sunucusuna bağlanamıyor

+0

kullanıyor musunuz? – pkyeck

+0

Kod snippet'inizi buraya koyabilirsiniz (veya github'a bağlantı)? –

+0

Hangi sürüm Node.js ve socket.io kullanıyorsunuz? – apose

cevap

1

0'dan değiştirildi yuvasından

[değiştir] Eğer socket.io.js müşteri koduna dosyasını ekleme ve şekilde kullandığınızdan emin olun. İstemci tarafında kendi web listenizi oluşturmaya çalışırsanız, büyük olasılıkla problemlerle karşılaşırsınız.

Sunucunuz için böyle

Do şey:

<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> 

Eğer web sunucusu dir gelen /socket.io/socket.io.js hizmet veren emin olun: yayınladığınız HTML dosyası için böyle

var app = require('express').createServer() 
    , io = require('socket.io').listen(app); 

app.listen(80); 

app.get('/', function (req, res) { 
    res.sendfile(__dirname + '/index.html'); 
}); 

io.sockets.on('connection', function (socket) { 
    socket.emit('news', { hello: 'world' }); 
    socket.on('my other event', function (data) { 
    console.log(data); 
    }); 
}); 

ve bir şey . Daha sonra yapmanız gereken tek şey, konsola girişinizi web tarayıcınızın Geliştirici ortamında Seçenekler'den veya sayfaya gittiğinizde Firebug ile izlemektir. Sunucuya bağlanmak için istemcide socket.io.js'yi

+0

İstemcime socket.io.js'yi eklemeye çalıştığımda, istemcinin "gereksinim" bulamadığı bir hata alıyorum. Ben socket.io.js koduna baktım ve sadece sunucu tarafında (yani, düğüm) şey olduğunu düşündüğüm, tarayıcı destekli bir şeyde bir JavaScript değil, gerektiren kullanır. Bir istemci tarafı "gerektiren" uygulayan müşteriye dahil etmemiz gereken başka bir kütüphane var mı? ya da bir şey mi eksik? – Elisabeth

+0

@Elisabeth bunu yeni bir soruya dönüştürmelisiniz. İstemcide require() kullanmayacaksınız. İstemcide