Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/325.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/196.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Android与node.js的通信_Java_Android_Node.js_Websocket - Fatal编程技术网

Java Android与node.js的通信

Java Android与node.js的通信,java,android,node.js,websocket,Java,Android,Node.js,Websocket,我看到有几个类似的线索,但我找不到我的答案 我正在制作一款android应用程序,我想用它作为实时通信的服务器 我真的不能让它工作 也许我犯了很多错误,但我喜欢试着去理解 我的服务器非常简单 var http=require('http'), io=require('socket.io'), server=http.createServer(函数(req,res){ res.writeHead(200,{'Content-Type':'text/html'}); res.end(“:)”); }

我看到有几个类似的线索,但我找不到我的答案

我正在制作一款android应用程序,我想用它作为实时通信的服务器

我真的不能让它工作

也许我犯了很多错误,但我喜欢试着去理解

我的服务器非常简单

var http=require('http'),
io=require('socket.io'),
server=http.createServer(函数(req,res){
res.writeHead(200,{'Content-Type':'text/html'});
res.end(“:)”);
});
监听服务器(8080);
var socket=io.listen(服务器);
socket.on('connection',函数(客户端){
client.send(“你好”);
console.log(“已连接!”);
});
这很有效。。。我用一个web应用程序尝试了这个,我可以连接

但是我不能用java

我试过了,但出现了一个异常,如“已连接,但注册时超时”

我试图在“创建ws://184.xxxxxx:8080的套接字时出错”

我试过了,运气不好,只是调用了onClose方法

我试过了,但没能成功

所以我在这里,请求帮助,有人知道怎么做吗?有什么建议吗

附言。 对于TooTallNate,我使用了如下内容:

netnet=newnet(新URI(“ws://184.xxxxxx:8080”)、WebSocketDraft.DRAFT76);
问题可能在这里吗

更新: 我搞定了!睡了一个好觉后,我有了一个想法,我正在使用socket.io,这个坏主意。。。现在我用。服务器如下所示:

var ws=require(“websocket服务器”);
var server=ws.createServer();
addListener(“连接”,函数(客户端){
控制台日志(“新连接”);
客户发送(“AAAAA”);
client.addListener(“消息”,函数(msg){
});
});
监听服务器(8080);
客户:

试试看{
URI url=新URI(“ws://184.106.69.64:8080/”;
WebSocket WebSocket=新的WebSocket连接(url);
setEventHandler(新的WebSocketEventHandler(){
公共开放(){
System.out.println(“--open”);
}    
公共消息无效(WebSocketMessage消息){
System.out.println(“--received message:+message.getText());
}   
公开作废{
System.out.println(“--close”);
}
});
connect();
发送(“你好世界”);
}
捕获(WebSocketException wse){
wse.printStackTrace();
}
捕获(URISyntaxException使用){
使用.printStackTrace();
}

正如Raynos所说,websocket规范仍然是一个草案(更改)。也许你可以问问Guillermo Rauch(Author socket.io)他使用的是哪种草稿,然后找到合适的Websocket库。在,您可以找到他的电子邮件地址,并尝试向他发送电子邮件(简短)

您还可以尝试使用另一个传输(长轮询)并自己实现


但在我看来,你应该使用谷歌的(大玩家已经在使用它,而且会非常温和地使用你的手机电池),而不是实时推送手机更新。我已经安装了很多使用c2dm的应用程序,例如(很棒)。你可以用它来简化你的工作。然后只需安装即可接收所需的通知。还有一个可供您使用的工具(easy:)

我是node websocket server(nws)的作者,我非常确定node websocket server工作和socket.io不工作的原因是由于每个工具的实现。NWS将自动协商使用正确的草案,并且有望90-100%符合76和75的草案

至于socket.io,我不能做太多评论,但最后一次查看时,它的websocket实现的实现相当糟糕

目前我正在进行一个名为node websocket protocol的项目,socket.io、faye等将能够使用该项目,为他们提供一个真正可靠且兼容的websocket实现。这也将替换版本2.0.0中节点websocket服务器中的当前实现

顺便说一句,如果你不想拥有自己的websocket服务器,你可以使用Pusher.com,他实际上是我的雇主

[更新]至于WebSocket是否是最适合您的应用程序的技术选择,则取决于您的应用程序需要什么类型的数据和交互。在移动设备上,如果只是发送推送通知,最好使用urbanairship或notifio之类的工具

问候,, 我推荐米切尔·史密斯

  • 安卓:
  • 节点WebSocket:http://static.brandedcode.com/nws-docs/

我认为问题在于websocketdraft。周围有3个气流,76、00和06。虽然Socket.io能够跟上最新的草稿,但我怀疑你的Java库是否能跟上。如果你将android应用程序用作客户端而不是浏览器,那么使用WebSocket是没有意义的。WebSocket用于服务器/浏览器设置。我建议在freenode上的#socket.io中ping他,而不是发送电子邮件。@Raynos这可能更好(更实时)。那些来自learnboost rock的人:)非常感谢你的意见,我知道我对情况有更好的看法,无论如何,我的应用程序是一个游戏,需要的不仅仅是通知,无论如何,谢谢你的建议!我个人建议使用Android C2DM库和iPhone通知系统。重新发明轮子通常是一件令人头痛的事。@Micheil Smith:如果您可以设置node.js服务器并通过Java与之通信,那么Pusher实际上提供了什么(如问题中所示)?