我已经从我的localhost机器创建了一个websocket服务器,可用于与Android应用程序通信。
服务器是用Node.js编写的,并托管在我的机器上
var HOST = "192.168.0.15";
var PORT = 6969;
var Sock = net.Socket();
net.createServer(function(sock) {
Sock = sock;
// We have a connection - a socket object is assigned to the connection automatically
console.log('CONNECTED: ' + sock.remoteAddress +':'+ sock.remotePort);
// Add a 'data' event handler to this instance of socket
sock.on('data', function(data) {
console.log('DATA ' + sock.remoteAddress + ': ' + data);
// Write the data back to the socket, the client will receive it as data from the server
var jsonStr = JSON.stringify(data);
sock.write(jsonStr);
var buffer = "";
});
// Add a 'close' event handler to this instance of socket
sock.on('close', function(data) {
console.log('CLOSED: ' + sock.remoteAddress +' '+ sock.remotePort);
});
}).listen(PORT, HOST);
io.sockets.on('connection', function(socket){
socket.on('send message', function(data){
Sock.emit("data", data);
});
});
我的Android应用程序使用Java Websocket
socket = new Socket("192.168.0.15", 6969);
commsThread = new CommsThread(socket);
commsThread.start();
我的Android设备用于测试我的应用,我的服务器在同一个网络中运行,因此它们可以正常工作。
但是,当我在Heroku中部署它时,它会给我一个错误。
注意:我尝试更改主机地址和PORT地址,但无济于事。
我被告知Heroku不支持TCP套接字服务器。
我不确定上面的示例是否是TCP套接字服务器。
如果没有,为什么我可以使用一些替代方案。
干杯, 丹尼斯
答案 0 :(得分:0)
为什么不将socket.io-java-client与socket.io模块一起用于Node.js?
答案 1 :(得分:0)
您是否在Heroku中启用了websockets?
$ heroku labs:enable websockets