我想为android创建一个与nodejs服务器通信的Cordova应用程序。这是我的代码:
客户端:
var socket = io.connect('ws://HEROKUHOST');
console.log(socket);
socket.send('hi');
});
服务器:
io.sockets.on('connection', function(socket){
console.log("Connected");
socket.on('message', function () { console.log("GOT MESSSS")});
});
它在浏览器中本地工作,但在应用程序中它确实连接但不发送消息。
因此,在服务器上我在连接时解除“已连接”消息,但socket.on('message')永远不会调用。我有东西阻止 socket.send('hi')。
答案 0 :(得分:0)
你的nodejs服务器是否有效?我猜想在Heroku上托管了吗? 对您的代码执行此更改: 在科尔多瓦代码:
var socket = io.connect('HEROKUHOST');
的console.log(插座);
socket.emit( '信息',{});
});
表示不需要在URL之前使用ws://。保持简单的https网址。其次,而不是socket.send使用socket.emit socket.send也用在服务器端,而不是客户端。客户端调用事件“消息”,而不是使用socket.send(“Hi”)
从服务器发送希望有所帮助
答案 1 :(得分:0)
对我来说,问题是因为升级服务器端包特别是 socket.io ..经过几个小时的搜索,我决定降级以适应客户端版本,然后问题就解决了。