//app.js
var app = require('express')();
// websocket的配置
// Express将APP初始化为一个可以提供给HTTP服务的函数处理程序,
var http = require('http').Server(app);
// 创建一个新的socket.io实例(服务器)
var io=require('socket.io')(http);
var users=[]
// 监听connection事件
// connection事件在客户端成功连接到服务端时触发
io.on("connection",function(socket){
socket.on('login',(data)=>{
console.log(data)
var userObj=Object.assign(data,{type:"online",sign:socket.id})
users.push(userObj)
io.emit("login",{data:{
users,
online:userObj
}
})
})
})
//定义一个路由句柄,在进入主页的时候会调用
app.get('/', function(req, res){
res.sendFile('E:/vuechatroom/index.html');
});
//让HTTP服务监听3000端口
http.listen(3000, function(){
console.log('listening on *:3000');
});
// view engine setup
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'jade');
app.use(logger('dev'));
app.use(express.json());
app.use(express.urlencoded({ extended: false }));
app.use(cookieParser());
app.use(express.static(path.join(__dirname, 'public')));
// catch 404 and forward to error handler
app.use(function(req, res, next) {
next(createError(404));
});
// error handler
app.use(function(err, req, res, next) {
// set locals, only providing error in development
res.locals.message = err.message;
res.locals.error = req.app.get('env') === 'development' ? err : {};
// render the error page
res.status(err.status || 500);
res.render('error');
});
module.exports = app;
下面是整个文件根目录的index.html
<body>
<div id="app"></div>
<script src="https://cdn.socket.io/socket.io-1.2.0.js"></script>
<script type="text/javascript">
var socket = io.connect('http://localhost:3000')
console.log(socket)
socket.on('connect_error',(data)=>{
console.log(data + ' - error');
})
socket.on('disconnect',function(data){
//收到消息
console.log(data);
})
``
打印出来的socket:
Socket
acks
:
{}
connected
:
false
disconnected
:
true
ids
:
0
以下是报错:Error: server error - error