我已经创建了一个套接字连接,目前我正在寻找清理并使一切井井有条。
以下是我当前文件结构FILE STRUCTURE
的图片所以我想要做的就是
socket.on("send message", function(data){
io.sockets.emit("new message", data);
});
并将其放在名为socketEvents.js的文件中,该文件位于main - > JS。
但是我不能100%确定如何在成功连接时包含该文件。 我尝试过使用像require()这样的东西;但无济于事。是否有标准方法包含单独的文件来运行事件?或者这不是好的做法?
编辑:
这是一个jsfiddle只是为了让所有代码可用:https://jsfiddle.net/7qya7j18/
答案 0 :(得分:1)
您可以将所有socket.io代码移动到另一个模块,并在初始化时将其传递给服务器。如果您通过文本(不是通过图像)将代码包含在您的问题中,那么这个答案会更容易编写,所以请将来再这样做。
主要模块:
var express = require("express"),
app = express(),
server = require("http").createServer(app);
server.listen(3000, function() {
console.log("Server is running");
});
app.use(express.static("main"));
// now load and initialize my socket.io module
require('./mysockets')(server);
mySockets模块:
var io = require("socket.io");
// declare module constructor that is passed the http server to bind to
module.exports = function(server) {
io.listen(server);
io.on("connection", function(socket) {
// player has connected
console.log("Player connected");
socket.on("disconnect", function() {
console.log("Player disconnected");
});
socket.on("send message", function(data) {
io.emit("new message", data);
});
});
};