node.js - socket.io.js 返回 404

标签 node.js socket.io

在尝试将 socket.io/nodejs 集成到长期缺席项目的页面中时,我在尝试为其设置服务器后端时遇到了很多问题。通过nvm安装node,(Node版本0.12.1,socket.io版本1.3.5)

似乎当我尝试运行服务器(通过简单的 node receive.js)时,我无法连接到 index.php 文件中的 /socket.io/socket.io.js,如下面提供的代码所示:

index.php(客户端)

<!-- in html > head -->
<script src="/socket.io/socket.io.js"></script> <!-- Problem here -->
<script>
    if (typeof io === 'undefined') {
        console.error("Error connecting to nodejs backend! Expect some errors");
    }
    var socket = io();
</script>
<script src="/assets/js/selector.js"></script>

receiver.js(服务器端)

console.log('loading requirements...');

var io = require('socket.io')(80);
var net = require('net');
var mysql = require('mysql2');

console.log('connecting to mysql...');

var connection = mysql.createConnection({
    user: '', //removed
    password: '', //removed
    database: '', //removed
    stream: net.connect(3306, "codelanx.com")
});

var sent = {};

console.log('listening...');

io.sockets.on('connection', function(socket) {
    //socket.io methods, etc...

selector.js(客户端)

//...
jQuery(document).ready(function($) {
    socket.emit('requestName');
    //...
}

在服务器端,所有日志语句都会被打印(使其监听...)。我一直在以几乎所有可以想象的方式配置 require('socket.io') 的调用线,但仍然无法建立此连接。我错过了什么吗?

最佳答案

您需要创建 http 服务器并将其作为参数传递给 socket.io,而是传递 80 作为参数:

var server = require('http').createServer();
var io = require('socket.io')(server);
io.on('connection', function(socket){
  socket.on('event', function(data){});
  socket.on('disconnect', function(){});
});
server.listen(80);

关于node.js - socket.io.js 返回 404,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29369648/

相关文章:

javascript - 找不到 Heroku Node 应用程序 404,不加载前端 js 文件或 css

javascript - 在nodejs中强制在一段时间后关闭连接

Node.js 上的 MongoDB 'error: non ascii character detected'

node.js - 使用 Node js 一步步创建 webrtc 视频、语音通话和文件传输 Q-A

javascript - JOI如何允许空格和标点符号

node.js - Node + Q 与 Express js - 有序 Promise

nginx - 使用 URL 重写反向代理 socket.io websocket

javascript - 如何为每个 Web 套接字仅使用一个数据库连接?

node.js - 端口 80 上的 Socket.io

javascript - 在 socket.io 多人棋盘游戏中避免多次移动