Socket.io实现JS聊天功能 代码与老师近似却无法运行如何排查
问题排查结果
1. Socket事件监听名称错误(核心故障)
你的代码中Socket服务器监听的事件名称写错了,和前端发送的事件名称不匹配:
- 老师代码里监听前端发送的
chatMessageFromBrowser事件:
socket.on('chatMessageFromBrowser', function(data) {
- 你的代码错误监听了本该是服务器发送给前端的
chatMessageFromServer事件:
socket.on('chatMessageFromServer', function(data) {
修改方式:把你的监听事件名称改为chatMessageFromBrowser即可。
2. 路由挂载顺序错误
Express中间件/路由的执行是按注册顺序生效的,你的代码顺序不符合常规逻辑,容易引发额外问题:
- 老师代码顺序:先配置静态资源、模板引擎,再挂载路由
app.use(express.static('public')) app.set('views', 'views') app.set('view engine', 'ejs') app.use('/', router)
- 你的代码顺序:先挂载路由,再配置静态资源和模板引擎
app.use('/', router) app.use(express.static('public')) app.set('views', 'views') app.set('view engine', 'ejs')
修改方式:调整顺序,把路由挂载放在静态资源、模板引擎配置之后。
3. 可选修正项
你的session配置里的secret单词拼写错误:Javacsript应为JavaScript,不影响功能但建议修正。
内容的提问来源于stack exchange,提问作者user2405755
相关产品推荐
相关产品推荐

