3

クライアント エラーは次のとおりです。

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);

何が間違っているのか誰が教えてくれますか? サーバーでexpress+socket.ioを使用し、クライアントでsocket.io.jsを使用しますサーバーとクライアントの両方がローカルホストにあります

4

2 に答える 2

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);
于 2013-09-15T10:34:48.527 に答える
0

@ebohlmanが述べたように

使ってみて

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

代わりにクライアントjsで

var socket = new io.connect("http://localhost", 8888);
于 2013-09-15T07:34:40.587 に答える