未定义的套接字 属性
Socket Property Of Undefined
我目前正在尝试使用 node、express 和 socket.io 创建一个实时聊天室。当我 运行 代码时,我收到此错误消息:
http://gyazo.com/d9956a80a691d1642b438173b0bd85bf
此外,这是我的 index.js 代码:
var express = require("express");
var app = express();
var port = 3700;
app.use(express.static(__dirname + "/public"));
app.set("views", __dirname + "/tpl");
app.set("view engine", "jade");
app.engine("jade", require("jade").__express);
app.get("/", function (req, res){
res.render("page");
});
io.sockets.on("connection", function (socket){
socket.emit("message", { message: "welcome to the chat" });
socket.on("send", function (data){
io.sockets.emit("message", data);
});
});
var io = require("socket.io").listen(app.listen(port));
console.log("Listening On Port " + port);
我搜索了 google,没有找到与我的代码相关的解决方案。请帮忙!
您在初始化之前使用 io 变量将 var io 移动到 io.sockets
之前
var io = require("socket.io").listen(app.listen(port));
io.sockets.on("connection", function (socket){
socket.emit("message", { message: "welcome to the chat" });
socket.on("send", function (data){
io.sockets.emit("message", data);
});
});
您在变量声明之前使用它,您的 listen()
调用看起来有点奇怪。
而不是这样做:
io.sockets.on("connection", function (socket){
socket.emit("message", { message: "welcome to the chat" });
socket.on("send", function (data){
io.sockets.emit("message", data);
});
});
var io = require("socket.io").listen(app.listen(port));
你应该做更多这样的事情:
var io = require("socket.io")(app);
io.sockets.on("connection", function (socket){
socket.emit("message", { message: "welcome to the chat" });
socket.on("send", function (data){
io.sockets.emit("message", data);
});
});
app.listen(port);
您在 io
变量初始化之前访问它。
只需移动以下行(io
变量初始化):
var io = require("socket.io").listen(app.listen(port));
在此行首次使用 io
变量之前:
io.sockets.on("connection", function (socket){
我目前正在尝试使用 node、express 和 socket.io 创建一个实时聊天室。当我 运行 代码时,我收到此错误消息: http://gyazo.com/d9956a80a691d1642b438173b0bd85bf
此外,这是我的 index.js 代码:
var express = require("express");
var app = express();
var port = 3700;
app.use(express.static(__dirname + "/public"));
app.set("views", __dirname + "/tpl");
app.set("view engine", "jade");
app.engine("jade", require("jade").__express);
app.get("/", function (req, res){
res.render("page");
});
io.sockets.on("connection", function (socket){
socket.emit("message", { message: "welcome to the chat" });
socket.on("send", function (data){
io.sockets.emit("message", data);
});
});
var io = require("socket.io").listen(app.listen(port));
console.log("Listening On Port " + port);
我搜索了 google,没有找到与我的代码相关的解决方案。请帮忙!
您在初始化之前使用 io 变量将 var io 移动到 io.sockets
之前var io = require("socket.io").listen(app.listen(port));
io.sockets.on("connection", function (socket){
socket.emit("message", { message: "welcome to the chat" });
socket.on("send", function (data){
io.sockets.emit("message", data);
});
});
您在变量声明之前使用它,您的 listen()
调用看起来有点奇怪。
而不是这样做:
io.sockets.on("connection", function (socket){
socket.emit("message", { message: "welcome to the chat" });
socket.on("send", function (data){
io.sockets.emit("message", data);
});
});
var io = require("socket.io").listen(app.listen(port));
你应该做更多这样的事情:
var io = require("socket.io")(app);
io.sockets.on("connection", function (socket){
socket.emit("message", { message: "welcome to the chat" });
socket.on("send", function (data){
io.sockets.emit("message", data);
});
});
app.listen(port);
您在 io
变量初始化之前访问它。
只需移动以下行(io
变量初始化):
var io = require("socket.io").listen(app.listen(port));
在此行首次使用 io
变量之前:
io.sockets.on("connection", function (socket){