在尝试将 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/