我正在学习Node并且有一个问题我似乎无法找到答案。在下面的简约聊天服务器示例中,节点服务器期望客户端页面与服务器文件位于同一目录中,如果我正在为移动设备构建客户端应用程序,我将如何将数据发送回正确的客户端?
var fs = require('fs')
, http = require('http')
, socketio = require('socket.io');
var server = http.createServer(function(req, res) {
res.writeHead(200, { 'Content-type': 'text/html'});
**res.end(fs.readFileSync(__dirname + '/index.html'));**
}).listen(8080, function() {
console.log('Listening at: http://localhost:8080');
});
socketio.listen(server).on('connection', function (socket) {
socket.on('message', function (msg) {
console.log('Message Received: ', msg);
socket.broadcast.emit('message', msg);
});
});
答案 0 :(得分:1)
您是否遇到this problem?如果是这样,也许使用适用于WebSockets的phonegap iOS / Android插件可能对您有所帮助。
供参考,以下是res.end(fs.readFileSync(__dirname + '/index.html'));
的含义:
同步读取index.html文件的内容(位于服务器的当前目录中)
通过网络将文件内容发送到请求页面的客户端(可以是本地计算机,电话,互联网上的计算机 - 有权访问该网页的任何人)后,结束HTTP响应服务器)。换句话说,节点充当页面index.html
Index.html可能包含一些与套接字相关的代码,指示客户端连接到服务器上的套接字(服务器的套接字由socketio.listen(server)
创建)