我創建了一個基本的node.js服務器程序,並使用socket.io從客戶端傳遞了一些字段數據(請參見下文)。因爲我是這個行業的新手,所以相當讚賞。我喜歡這個node-express-socket.io方法作爲它的所有Javascript,並且顯然可以被大多數瀏覽器(包括'mobile')使用。問題是我有點摸不着頭腦,不能完全理解我創造的東西!兩個問題...Node.js - socket.io web應用程序
1)我需要使用「//ajax.googleapis.com ... jquery ...」嗎?這很煩人,因爲瀏覽器需要連接互聯網才能工作。有沒有另一種方式訪問HTML文檔元素,而無需互聯網連接?
2)什麼的 「app.use(express.static ....」 行辦呢? 「app.get ...」 功能似乎需要這個工作。
如果有任何關於我的代碼等一般性意見請讓我擁有它
乾杯,
Kirbs
客戶端代碼:
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script>
<script src="/socket.io/socket.io.js"></script>
<script>
var socket = io.connect(document.location.protocol+'//'+document.location.host);
function clicked(){
$(function(){
var makeInput=$('.app').find('#make').val();
var modelInput=$('.app').find('#model').val();
socket.emit('make', makeInput);
socket.emit('model', modelInput);
});
};
</script>
服務器端代碼:
var express = require('express');
var http = require('http');
var socketio = require('socket.io');
var app = express();
var server = http.createServer(app);
var io = socketio.listen(server);
app.use(express.static(__dirname));
app.get('/', function (req, res) {
res.render(__dirname + '/index.html');
});
io.sockets.on('connection', function (socket) {
socket.on('make', function (make) {
socket.on('model',function (model){
console.log('recieved message:', make+','+model);
});
});
});
server.listen(8000);
謝謝marcoseu非常有幫助,我不知道如何在一個命令中「發射」幾個字符串。如果發出的數據是浮點數的數組,你會推薦什麼方法? – Kirbs 2013-05-11 13:15:20
嘗試將數組包裝在字典中:'{nums:[1.2,1.3,1.4]}'。 – marcoseu 2013-05-11 14:15:32