使用cordova快速nodejs socket.io



我正在尝试在服务器上实现socket.io。该服务器是一个API(express nodejs)。

服务器端很简单,但对于客户端,我使用的是phonegap/cordova

我不使用手机来测试我的工作,我使用浏览器(chrome)。

这是服务器端:

var express    = require('express');        // call express
var app        = express();                 // define our app using express
var http = require('http').Server(app);
var io = require('socket.io')(http);
io.on('connection', function(socket){
  console.log('a user connected');
  console.log(socket);
    socket.on('disconnect', function () {
        console.log('socket disconnected');
    });
  io.emit('text', 'wow. such event. very real time.');
});

目前,这很简单,

但对于客户端我完全混淆了(cordova phonegap),

这就是我所拥有的:

index.html

<script type="text/javascript" src="http://cdn.socket.io/socket.io-1.0.3.js"></script>

<script>
    var socket = io.connect('http://localhost:8080');
    socket.on('news', function (data) {
        console.log('send')
        socket.emit('my other event', { my: 'data' });
    });
</script>

除了这样的错误外,什么都没有出现

得到http://localhost:8080/socket.io/?EIO=2&transport=轮询&t=1462638049681-3净::ERR_CONNECTION_REFUSED

并且在我的服务器上没有

有什么想法可以帮我吗?谢谢:)

您的服务器没有侦听端口8080。这就是为什么当您尝试从浏览器连接到var socket = io.connect('http://localhost:8080');时,它会显示'Connection Refused'

这个编辑对你有用。

var express    = require('express');        // call express
var app        = express();                 // define our app using     express
var http = require('http').Server(app);
var io = require('socket.io')(http);
io.on('connection', function(socket){
  console.log('a user connected');
  console.log(socket);
  socket.on('disconnect', function () {
    console.log('socket disconnected');
  });
  io.emit('text', 'wow. such event. very real time.');
});
//Now server would listen on port 8080 for new connection
http.listen(8080, function(){
  console.log('listening on *:8080');
});

最新更新