0
仍然是一個小菜一碟,但我試圖建立一個簡單的實時聊天系統。Socket.io對象沒有套接字(未定義)
這裏是我的主要代碼
var express = require('express');
var http = require('http');
var fs = require('fs'); //to read contents of client.html
var io = require('socket.io');
// var sanitize = require('validator').sanitize;
var port = 1337;
var app = express();
app.use(express.logger('dev'));
app.get('/', function (request, response){
response.writeHead(200, {'Content-Type': 'text/html'});
fs.readFile("client.html", 'utf-8', function (error, data) {
response.end(data);
});
});
var server = app.listen(port);
io.listen(server);
io.sockets.on('connection', function (socket) {
socket.on('message_to_server', function (data) {
// var sanitizedMessage = sanitize(data["message"]).escape();
var sanitizedMessage = data["message"];
io.sockets.emit("message_to_client", {message: sanitizedMessage});
});
});
,當我運行它,它給了我
io.sockets.on('connection', function (socket) {
^
TypeError: Cannot call method 'on' of undefined
果然我插在調試器node debug main.js
,當我檢查的io
價值似乎像一切都在那裏除了sockets
我搞砸了很多,發現io
僅在使用fs
來讀取我的中間件中的文件時丟失sockets
。
我中間件因此,如果更改爲:
app.get('/', function (request, response){
response.writeHead(200, {'Content-Type': 'text/html'});
response.end('this works');
});
然後io
有sockets
,這使我相信,這是一個時間問題。
任何幫助將非常感激。乾杯
謝謝!!!它究竟返回了什麼? – vvMINOvv