socket.io.js返回一个404
在尝试将socket.io/nodejs整合到页面中之后,我遇到了很多尝试为其设置服务器后端的问题。 通过nvm安装节点(节点版本0.12.1
,socket.io版本1.3.5
)
看起来,当我尝试运行服务器(通过一个简单的node receiver.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'); //... }
在服务器端,所有的日志语句都打印出来(让它listening...
)。 我一直在configurationrequire('socket.io')
的调用行,几乎每一个可以想象的方式,但仍然不能使这个连接。 我错过了什么吗?
您需要创buildhttp服务器并将其作为parameter passing给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);