简单的Sails.js和Android示例

dav*_*ave 1 sockets android node.js sails.js

我真的很努力使用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");
}
Run Code Online (Sandbox Code Playgroud)

我的批次控制器看起来像这样:

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);
    }
}
Run Code Online (Sandbox Code Playgroud)

在运行任务时,我认为我会在我的sails实例中输出控制台日志.

谁能看到我做错了什么?

dav*_*ave 6

我得到它像这样工作:

 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();
Run Code Online (Sandbox Code Playgroud)