我或多或少地遵循socket.io文档,并尝试将其应用于我稍微不同的项目,但我相信我犯了一些错误。我使用快速生成器来创建项目的骨架,因此我获得了app.js文件,www文件和路径文件。
我已将此代码放在www文件中:
var io = require('socket.io')(http);
console.log('Socket is running!');
io.on('connection', function(socket){
console.log('A User Has Connected: ' + socket.id);
});
我的页脚文件中的代码:
<script src="/socket.io/socket.io.js"></script>
<script src="/javascripts/jquery-3.2.1.min.js"></script>
<script src="/javascripts/javascript.js"></script>
</body>
</html>
这在我的JavaScript文件中:
$(document).ready(function(){
var socket = io();
});
现在我了解到,当发出请求时,控制台应该记录“用户已连接:&#34; +套接字的ID,但除了&#34; Socket正在运行之外,我没有得到任何东西!&#34;。我假设我遗漏了一些东西,但无法解决问题并且文档使用相同的代码。
var port = normalizePort(process.env.PORT || '8087');
app.set('port', port);
server.listen(port);
server.on('error', onError);
server.on('listening', onListening);
答案 0 :(得分:2)
您必须使用相同的服务器实例express-generator
创建,这是www
文件中的以下行
var server = http.createServer(app);
要使用它,请更改
var io = require('socket.io')(http);
到
var io = require('socket.io')(server);