简单的Sails.js和Android示例
我真的很难用sails.io和android打开套接字连接。我目前试图实现的只是在sails.js服务器的控制台中打印socketid 安卓端: 我正在使用nkzwa的socket.io.client库 (编译'com.github.nkzawa:socket.io客户端:0.4.2') 这是我在android中异步任务中使用的代码:简单的Sails.js和Android示例,android,node.js,sockets,sails.js,Android,Node.js,Sockets,Sails.js,我真的很难用sails.io和android打开套接字连接。我目前试图实现的只是在sails.js服务器的控制台中打印socketid 安卓端: 我正在使用nkzwa的socket.io.client库 (编译'com.github.nkzawa:socket.io客户端:0.4.2') 这是我在android中异步任务中使用的代码: private Socket mSocket; { try { mSocket = IO.socket("http
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");
}
我的batchescontroller如下所示:
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);
}
}
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();
在运行该任务时,我认为可以在我的sails实例中输出控制台日志
有人能看到我做错了什么吗?你能先创建一个节点客户端并尝试连接套接字吗?我不确定您是否确定sails中的服务器端是否正常工作。我说得对吗 您能否先创建一个节点客户端并尝试连接套接字?我不确定您是否确定sails中的服务器端是否正常工作。我说得对吗 我让它这样工作:
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);
}
}
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();
我让它像这样工作:
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);
}
}
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();
要发出请求,请使用url作为
事件
,要获得响应,请使用emit
方法中的ack
如果发现以下错误错误(SAILS:HOOK:SOCKETS:PARSE_VIRTUAL_REQ)::未能解析传入的socket.io请求更改http://192.168.11.111:1337
至http://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());
}
});
要发出请求,请使用url作为事件
,要获得响应,请使用emit
方法中的ack
如果发现以下错误错误(SAILS:HOOK:SOCKETS:PARSE_VIRTUAL_REQ)::未能解析传入的socket.io请求更改http://192.168.11.111:1337
至http://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());
}
});
在这里提问之前,请始终打开“到处调试”并附加日志。这两个控制台都有什么功能?(节点控制台和adb logcat)节点控制台是空的,android没有任何相关功能。在这里提问之前,请始终在任何地方打开调试并附加日志。这两个控制台都有什么功能?(节点控制台和adb logcat)节点控制台为空,android与此无关。我可以帮助您使用sails套接字,但我没有android方面的经验来帮助您。我可以帮助您使用sails套接字,但我没有android方面的经验来帮助您。如何使用此代码获得URL JSON输出?对于此实例,服务器没有JSON回复。为此,您遵循类似的模式,但添加了一个用于返回数据的处理程序,比如mSocket.on(“myurl”,onDataReceived);然后private Emitter.Listener onDataReceived=new Emitter.Listener(){@Override public void调用(最终对象…args){}谢谢!关于此代码,我还有另一个问题。^^我的web套接字只有在用户已连接的情况下才能工作。因此,我如何更改头以保持套接字和http web服务之间的会话?对此不确定,最好问一个新问题。如何使用此代码获得URL JSON输出?对于此实例,没有JSON从服务器回复。为此,您遵循类似的模式,但添加一个用于返回数据的处理程序,如mSocket.on(“myurl”,onDataReceived);然后是private Emitter.Listener onDataReceived=new Emitter.Listener(){@Override public void call(final Object…args){}谢谢!关于此代码,我还有另一个问题。^^我的web套接字只有在用户已连接的情况下才能工作。因此,我如何更改标头以保持套接字和http web服务之间的会话?不确定,可能最好问一个新问题。为我节省了一天!为我节省了一天!