2017-04-05 14 views
0

ドラッグ可能なdivがあり、クライアント間の位置を更新するためにsockets.ioを使用したいという単純な設定があります。私のクライアントでsocket.io受信/送信しない

(index.htmlを)私が持っている:

// find the elements 
    var elements = document.getElementsByClassName('ball'), 
     labelsX = document.getElementsByClassName('coords-x'), 
     labelsY = document.getElementsByClassName('coords-y'); 

    // loop over the 3 items... 
    for (var n = elements.length; n--;) { 

     // ... augment our default options with individual `onDrag` handlers 
     var opts = { 
      onDrag: onDragFactory(n), 
      setCursor: true 
     }; 

     // ... and initialize drag for each 
     window.d = new Draggable(elements[n], opts); 
     console.log('ddd'); 
    } 

    // bind `n` to its value at iteration time 
    function onDragFactory (n) { 

     return function (element, x, y) { 

      //This doesnt seem to work 
      console.log(elements[n].style.top);  
      socket.emit('positionx', elements[n].style.top);   


      socket.on('positionx', function(positionx){ 
       elements[n].style.top= positionx.value(); 
      }); 


     } 

    } 

私のサーバーは、次のとおりです。

var express = require('express'); 
    var path = require('path'); 
    var app = express(); 
    var http = require('http').Server(app); 
    var io = require('socket.io')(http); 

    var publicPath = path.resolve(__dirname, 'public'); 

    app.use(express.static(publicPath)); 

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



    //Server Side Listen for an event from the client 
    io.on('connection', function(socket){ 

     socket.on('positionx', function(positionx){ 
      console.log('recieving'); 
      console.log(positionx);    

     io.emit('positionx', positionx); 
     }); 

    }); 

    http.listen(3000, function(){ 
     console.log('listening on *:3000'); 
    }); 

サーバーは、しかし任意の情報を受信して​​いないようです。私が間違っていることはありますか?どんな助けでも大歓迎です!

+0

コンソールに表示されるエラーは何ですか? – Jer

+0

@ C0dekidコンソールにエラーはありませんが、コンソールに明示的に記録されていない警告があるかどうか確認するために追加できるものはありますか? – masterofimps

答えて

1

クライアントでは、ソケットを定義する必要があります。

var socket = io(); 

また、Java Scriptでsocket.ioを呼び出す前に、socket.io-x.x.x.jsが含まれていることを確認してください。すでにこれを行っているかもしれませんが、コードがなくても不明です。

+0

私はちょっと馬鹿だと感じました、それはまさにそれでした!どうもありがとう ! – masterofimps

関連する問題