简单的Sails.js和Android示例

我真的很难用sails.io和android打开套接字连接。 我现在想要实现的只是在sails.js服务器的控制台中打印socketid。

Android端:

我正在使用nkzwa的socket.io.client库(编译'com.github.nkzawa:socket.io-client:0.4.2')

这是我在AsyncTask中使用的android代码:

private Socket mSocket; { try { mSocket = IO.socket("http://192.168.0.80:3000/batches/"); } catch (URISyntaxException e) {} } @Override protected Void doInBackground(Void... params) { mSocket.connect(); mSocket.emit("getSocketID"); } 

和我的批处理控制器看起来像这样:

 module.exports = { getSocketID: function(req, res) { if (!req.isSocket) return res.badRequest(); var socketId = sails.sockets.id(req.socket); // => "BetX2G-2889Bg22xi-jy" console.log(socketId) return res.ok('My socket ID is: ' + socketId); } } 

当我运行这个任务时,我想我会得到在我的sails实例中输出的控制台日志。

任何人都可以看到我做错了什么?

我得到了这样的工作:

  private Socket mSocket; { try { mSocket = IO.socket("http://192.168.0.80:3000"); } catch (URISyntaxException e) { throw new RuntimeException(e); } } JSONObject obj1 = new JSONObject(); try { obj1.put("url","/batches/getSocketID"); } catch (JSONException e) { e.printStackTrace(); } mSocket.emit("get",obj1); mSocket.connect(); 

你可以尝试先创build一个节点客户端,并尝试连接套接字? 我不确定你是否确定sails中的服务器端是正常工作的。 我对吗?

要发出请求,请使用url作为event并在emit方法中使用ack获取响应。

如果发现followig错误Error (SAILS:HOOK:SOCKETS:PARSE_VIRTUAL_REQ):: Failed to parse incoming socket.io request更改http://192.168.11.111:1337http://192.168.11.111:1337?__sails_io_sdk_version=0.13.5

 private Socket mSocket; { try { mSocket = IO.socket("http://192.168.0.80:3000"); } catch (URISyntaxException e) { throw new RuntimeException(e); } } JSONObject jsonObject = new JSONObject(); try { jsonObject.put("url", "/records"); } catch (JSONException e) { e.printStackTrace(); } mSocket.emit("get", jsonObject, new Ack() { @Override public void call(Object... args) { Log.d(TAG, "records: " + args[0].toString()); } });