我用Express Generator创建NodeJS Express项目。而且我想使用SocketIO,但设置似乎有错误。
const express = require('express');
const router = express.Router();
var http = require('http').Server(router);
var io = require('socket.io')(http);
io.on('connection', function(socket){
socket.on('chat message', function(msg){
console.log('message: ' + msg);
});
});
[客户端PUG文件] 我用NPM安装了SocketIO,文档说我可以使用
<script src="/socket.io/socket.io.js"></script>
但是当我使用它似乎无法正常工作时,我只在客户端使用了socketIO的CDN版本。
script(src="https://cdnjs.cloudflare.com/ajax/libs/socket.io/2.2.0/socket.io.js")
这是我的客户端JS代码
$(function () {
var socket = io();
$('form').submit(function(e){
e.preventDefault(); // prevents page reloading
socket.emit('chat message', $('#m').val());
$('#m').val('');
return false;
});
});
我从服务器控制台和客户端控制台收到一些错误消息
[服务器端错误]
[客户端错误]
我认为这是服务器端代码和带有路由器某些初始代码的问题。因为所有示例代码都是这样
var app = require('express')();
var http = require('http').Server(app);
var io = require('socket.io')(http);
答案 0 :(得分:0)
您是对的,请尝试我的示例
var app = require('express')();
const router = express.Router();
app.use('/', router); // attach the router to express app
var http = require('http').Server(app);
var io = require('socket.io')(http);