如何将SocketIO与其他路由器一起使用
我使用快速生成器创建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>
但是当我使用它时似乎没有工作,所以我只在客户端使用CDN版本的socketIO。
script(src=".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);
回答如下:
你是对的,试试我的榜样
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);