2014-03-04 188 views
0

我試圖弄清楚如何從node.js + socket.io應用程序的前端訪問數據。使用「Heroku的日誌 - 尾」(實況記錄),我得到一個即時響應,我把東西在輸入後點擊提交:使用node.js + socket.io + express/ejs將數據從客戶端傳遞到服務器

debug: xhr-polling received data packet 5:::{"name":"data","args":[{"hash":"<whatever I put in the input"}]} 

但我無法訪問它來記錄它。下面的console.log行永遠不會執行。

繼承人;後端server.js

app.get('/', function(req, res){ 
    res.render('index.ejs', { 
    layout:false, 
    locals: { 
    someVariable: "blah" 
    } 
}); 

// Get Form Data 
io.sockets.on('data', function(data) { 
    console.log("heres the hash " + data.hash); 
}); 

而這在我的前端

<form> 
     <span class="label">#</span><input type="text" name="hashtag" id="hashtag" placeholder="hashtag"> 
     <input type="submit" id="submit" value="Roll em in!"> 
</form> 

<script> 
var socket = io.connect(); 
$('#submit').on('click', function(event) { 
    event.preventDefault(); 
    alert('clicked!'); 
    socket.emit('data', { 
    hash: $('#hashtag').val() 
    }); 
}); 
</script> 
+0

做客戶的'io.connect ()'實際上有服務器地址和端口? –

+0

是的應用程序中的其他所有東西都可以工作,只需粘貼很多東西,我只需粘貼必要的片段即可。這裏是我的腳本的頂部: VAR UTIL =需要( 'UTIL'), HTTP =需要( 'HTTP'), 表達=需要( '表達'), EJS =需要( 'EJS'), app = express(); var port = process.env.PORT || 3000; var server = app.listen(port); var io = require('socket.io')。listen(server); //用於heroku上 io.configure(函數(){ io.set( 「運輸」,[ 「XHR輪詢」]); io.set( 「輪詢持續時間」,10); }); – Zack

+0

沒有意識到它會粘貼沒有回報,新的在這裏,對不起。 – Zack

回答

0

如何做這樣的:

io.sockets.on('connection', function(socket) { 
    socket.on('data', function(data){ 
    console.log("heres the hash " + data.hash); 
    }); 
}); 
相關問題