2012-07-20 51 views
3

客户端错误是:socket.io客户端的NodeJS节目 “GET HTTP://本地主机:8888/socket.io/1/T = 1342788870007 404(未找到)”

GET http://localhost:8888/socket.io/1/?t=1342788870007 404 (Not Found)socket.io.js:1632 

Socket.handshake socket.io.js:1632 
Socket.connect socket.io.js:1671 
Socket socket.io.js:1530 
io.connect socket.io.js:91 

(匿名功能)

我的客户JS:

var socket = new io.connect("http://localhost", 8888); 

socket.on("chatRoom", function(data){ 
    $("#log").html($("#log").html() + "<br>" + data); 
}) 

$("#chatform").submit(function (event) { 
    event.preventDefault(); 
    socket.emit('chatRoom', $("#chat").val()) 
}) 

,我的服务器是:

var express = require('../node_modules/express'), 
app = express.createServer(), 
io = require('../node_modules/socket.io').listen(app), 
fs = require('fs'); 

app.use(express.bodyParser()); 

var port = 8888; 

// get html page ok 
app.get('/html/*', function (req, res) { 
    res.sendfile(__dirname + '/html/' + req.params[0]); 
}); 

// chat 
io.sockets.on('connection', function (socket) { 
    socket.on("login", function(message){ 
    socket.emit('chatRoom', "sombody connect"); 
    }) 

    socket.on("chatRoom", function(data){ 
     socket.emit('chatRoom',"from server"); 
    }) 
}) 

app.listen(port); 

谁能告诉我什么是错的? 我的用户表示在+服务器socket.io,我用socket.io.js在客户端 服务器和客户端在本地主机

+2

'io.connect()'不打算用'new'调用。 – ebohlman 2012-07-20 23:15:51

回答

0

由于@ebohlman提到

尝试使用

var socket = io.connect('http://localhost:8888'); 

在客户端的JS,而不是

var socket = new io.connect("http://localhost", 8888); 
0

这是你的问题(在服务器端代码):

app.listen(port); 

你需要创建一个单独的HTTP服务器,而不是:在客户端

... 
var app = express(); 
var server = require('http').createServer(app); 
var io  = require('../node_modules/socket.io').listen(server); 
... 
server.listen(port); 
相关问题