所以我正在创建一个Web应用程序,并且在构建服务器部件时由于CMD中的错误而卡住了:
TypeError: Cannot read property 'on' of undefined
我试图在server.js和client.js之间建立连接,但是即使我已经包含了所有必需的模块,它似乎也不起作用。
var fs = require('fs'); // required for file serving
var http = require('http');
var express = require('express');
var app = express();
var socket = require('socket.io');
var io = require('socket.io');
// loading all HTMl files
// loading CSS, JS, Pictues
// for the HTML index
// server.listen
// !!! HERE IS THE PROBLEM !!!
io.sockets.on('connection', newConnection);
function newConnection(socket){
console.log('new connection');
console.log(socket);
}
我希望我的server.js与client.js(没有任何内容)联系并作为普通服务器运行!
每个建议都非常感谢! :)
答案 0 :(得分:2)
您需要将服务器对象传递给io初始化程序。以下代码可能会有所帮助:
var fs = require('fs'); // required for file serving
var express = require('express');
var app = express();
var server = require('http').Server(app);
var io = require('socket.io')(server);
var port = process.env.PORT || 8080;
server.listen(port);
io.sockets.on('connection', newConnection);
function newConnection(socket){
console.log('new connection');
console.log(socket);
}
答案 1 :(得分:1)
您错误地初始化了io
。尝试这样:
var io = socket(http);
答案 2 :(得分:0)
只需要一个 require 语句。删除其中之一。
喜欢
const io=require("socket.io");
io.on("conn",function(){
console.log("New Connection");
})