gpt4 book ai didi

android - 如何使用 socket.io 模块从 android 向 nodejs 服务器发送数据?

转载 作者:行者123 更新时间:2023-11-29 21:03:45 25 4
gpt4 key购买 nike

我写了这个 node.js 服务器。但是当我使用 socket.io 模块从 android 发送数据时。但是我收到错误。请帮帮我?我如何将数据(发件人、消息)从 android 发送到 node.js 服务器。

node.js 服务器

var io = require('socket.io').listen(8001);
var connectCounter=0;
console.log('Server running :');

// open the socket connection
io.sockets.on('connection', function (socket) {
connectCounter++;
console.log('bağlantı başarılı sayı:');
console.log(connectCounter);

//Recode user online
var sender;
socket.on('user-online',function(data){

console.log('user-online');

var obj = JSON.parse(data);
sender = obj.sender;

console.log(sender);

socket.broadcast.emit('online',{sender : sender});
});

socket.on('message', function(message){

console.log('on-message');

var obj = JSON.parse(message);
socket.broadcast.emit('event',{sender : obj.sender, message : obj.message});
console.log(message);
});

socket.on('disconnect', function (socket){

console.log('disconnect');
connectCounter--;
socket.broadcast.emit('offline',{sender : sender})
});

});

这是一个android代码。

btnOK.setOnClickListener(new View.OnClickListener() {
public void onClick(View arg0) {
strUserName = edtUserName.getText().toString();
if (strUserName != null && strUserName.length() > 0 || !"".equals(strUserName)) {
Intent intent = new Intent(getApplicationContext(), ScreenChat.class);
intent.putExtra("UserName", strUserName);
startActivity(intent);
edtUserName.getText().clear();
}else {
Toast.makeText(getApplicationContext(), "user name null", Toast.LENGTH_SHORT).show();
return;
}

SocketIO socket;
try {
socket = new SocketIO("http://192.168.9.43:8001/");
socket.connect(new IOCallback() {
public void onMessage(JSONObject json, IOAcknowledge ack) {
try {
System.out.println("Server said:" + json.toString(2));
} catch (JSONException e) {
e.printStackTrace();
}
}

public void onMessage(String data, IOAcknowledge ack) {
System.out.println("Server said: " + data);
}

public void onError(SocketIOException socketIOException) {
System.out.println("an Error occured");
socketIOException.printStackTrace();
}

public void onDisconnect() {
System.out.println("Connection terminated.");
}

public void onConnect() {
System.out.println("Connection established");
}

public void on(String event, IOAcknowledge ack, Object... args) {
System.out.println("Server triggered event '" + event + "'");
}
});

// This line is cached until the connection is establisched.
socket.send("Hello Server!");
} catch (MalformedURLException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}

@SuppressWarnings("unused")
public void onClick(final DialogInterface arg0, final int arg1) {
// TODO Auto-generated method stub

}
});

当我点击 btnOK(你可以看到上面的代码)时,我得到这个错误: error screen on windows 7 console prompt

最佳答案

您正在发送一个字符串,并尝试将其解析为 JSON。

socket.send("Hello Server!");

var obj = JSON.parse(message);

"Hello Server!" 不是有效的 JSON。

关于android - 如何使用 socket.io 模块从 android 向 nodejs 服务器发送数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25176140/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com