Google Glass上的Socket.io客户端

我试图让我的谷歌眼镜和我的android手机连接到我在我的电脑上运行的一个NodeJs服务器,以便我可以从我的android手机发送消息到我的谷歌眼镜。

对于这个使用koush的AndroidAsync库的Im,这在我的android手机上效果很好,而且我完全没有把我的手机连接到这个库的NodeJS服务器的麻烦。

然而,相同的代码似乎不能在我的谷歌眼镜工作。 我的Google Glass DOES连接,因为我的NodeJS服务器的连接事件处理程序被触发,它似乎不会触发我的Google Glass上的任何ConnectCallbackfunction。

以下是我在Google Glass应用中使用的代码:

SocketIOClient.connect(AsyncHttpClient.getDefaultInstance(), "http://192.168.1.229:5000", new ConnectCallback() { @Override public void onConnectCompleted(Exception ex, SocketIOClient client) { Log.i("SOCKET", "CONNECTION COMPLETED"); if (ex != null) { ex.printStackTrace(); return; } client.setStringCallback(new StringCallback() { @Override public void onString(String string, Acknowledge acknowledge) { Log.d("SOCKET", string); } }); client.setJSONCallback(new JSONCallback() { @Override public void onJSON(JSONObject jsonObject, Acknowledge acknowledge) { Log.d("SOCKET", jsonObject.toString()); } }); client.on("event", new EventCallback() { @Override public void onEvent(JSONArray jsonArray, Acknowledge acknowledge) { Log.i("DATA: ", jsonArray.toString()); Gson gson = new Gson(); } }); mClient = client; } }); 

}

正如你所看到的,我试图在“onConnectCompleted”函数中logging“CONNECTION COMPLETED”,但它永远不会触发,也不会logging任何事情。

我觉得这很奇怪,因为相同的代码在我的android手机上工作,并且当我在我的android手机上运行这段代码时,“CONNECTION COMPLETED”被logging下来。 最奇怪的是我的节点服务器实际上拿起了Google Glass,因为当我的Glass连接时,在服务器上触发on连接事件。

那么,任何人都可以帮我找出为什么我的Google Glass显然是连接到我的NodeJS服务器,但是在连接时不会触发任何事件。 (不会触发ConnectCallbackfunction,“CONNECTION COMPLETED”从不logging)?

提前致谢,

布拉姆

我在这里面临同样的问题,注意到虽然我的玻璃显示它连接到我的Wifinetworking,但实际上并没有。 我尝试了adb shell netcfg ,令我惊讶的是wlan0接口没有分配IP。 我重新连接到无线networking,这一切都开始工作得很好。

奇怪的是,我期待着某种错误被logging(即使我使用了不同的Socket.IO客户端 )。 我相信案件是一个超时没有过期(连接/套接字超时),所以它仍然试图连接,并没有及时让我们看到日志条目。 我猜这些库默认情况下会有相对较高的连接超时设置,所以在很多秒钟之前你不会看到错误。