2011-07-08 18 views
3

私はシンプルなexempleでsocket.ioで始めている:Socket.io呼び出します。http://未定義/ .... URLで

クライアント側:

$(document).ready(function() {  
    var sock = new io.Socket();  
    sock.on('message', function (data) {   
     var obj = JSON.parse(data);   
     if(obj.message) {   
      $('#message').text(obj.message);   
     } else {   
      $('#timestamp').text(obj.timestamp);   
      $('#clients').text(obj.clients);  }  });  

    sock.connect('http://127.0.0.1:8333');  
    $("#poke").click(function() { 
     sock.send("Poke !"); 
    });  
}); 

サーバー側:

var io = require('socket.io');var express = require('express'); 
var app = express.createServer(); 
app.configure(function(){ 
    app.use(express.static(__dirname + '/public'));}); 
    app.get('/', function(req, res, next){ res.render('./public/index.html');}); 
app.listen(8333); 

var socket = io.listen(app, { 
    flashPolicyServer: false, 
    transports: ['websocket', 'flashsocket', 'htmlfile', 'xhr-multipart', 'xhr-polling', 'jsonp-polling']}); 
var allClients = 0; 
var clientId = 1; 
socket.on('connection', function(client) { var my_timer; var my_client = { "id": clientId, "obj": client }; 
    clientId += 1; 
    allClients += 1; 
    my_timer = setInterval(function() {  
    my_client.obj.send(JSON.stringify({ "timestamp": (new Date()).getTime(), "clients": allClients })); }, 1000); 
    client.on('message', function(data) { my_client.obj.broadcast(JSON.stringify({ message: "poke send by client "+my_client.id }));  
    console.log(data); 
}); 

client.on('disconnect', function() {  
    clearTimeout(my_timer);  
    allClients -= 1;  
    console.log('disconnect'); });}); 

私の問題は、クライアントが取得しようとしているということです。

http://undefined/socket.io/1/?t=1310142283769&jsonp=0

これは未定義です。私はhttp://localhost/socket.io/1/?t=1310142283769&jsonp=1で私のアプリをカールするとき何かを取得します。

なぜすべてが正しく設定されているように見えますが、socketはundefinedを呼び出しています。

私を助けてくれてありがとう!

答えて

13

クライアントに誤ってソケットを作成しているようです。

var sock = io.connect('http://127.0.0.1:8333'); 

などがあり、sock.connect行を完全に削除する必要があります。

SocketIO Webサイトの例を参照してください。 http://socket.io/#how-to-use

+0

ありがとうございます。私は間違いを見ずにsocket.ioウェブサイトを何度も読んだことがある! – Servernumber

+0

(私は愚かでなければならない) – Servernumber

3

私はちょうど同じことに遭遇しました。私にとって、Socket.IO v0.6に対して書かれたコードは、Socket.IOで最後に作業して以来、v0.7に更新されています。ここには移行ガイドがあります:

https://github.com/LearnBoost/Socket.IO/wiki/Migrating-0.6-to-0.7+

+0

ありがとう!私は今それを試してみます – Servernumber

+1

上記のリンクは間違っています。最後に+を付けてみてください:https://github.com/LearnBoost/Socket.IO/wiki/Migrating-0.6-to-0.7+ –

関連する問題