我正在尝试在服务器上实现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');
});