为什么我没有收到一个新的套接字用户连接的console.log?
我或多或less地遵循socket.io文档,并试图将其应用于我稍微不同的项目,但我相信我犯了一些错误。 我使用了快速生成器来创build我的项目的骨架,因此我得到了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(); });
现在我明白,当一个请求发出时,控制台应该logging“一个用户已连接:”+套接字的ID,但我没有得到任何比“套接字正在运行!”以外的任何东西。 我假设我失去了一些东西,但无法弄清楚,文档使用相同的代码。
var port = normalizePort(process.env.PORT || '8087'); app.set('port', port); server.listen(port); server.on('error', onError); server.on('listening', onListening);
你必须使用相同的服务器实例express-generator
create,这是www
文件中的以下行
var server = http.createServer(app);
要使用它,请更改
var io = require('socket.io')(http);
至
var io = require('socket.io')(server);