大佬教程收集整理的这篇文章主要介绍了java – 在Android上发出socket.io消息,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在尝试使用socket.io开发一个应用程序.有2个设备,当有人触摸到设备1的屏幕时,我需要在设备2上看到一条消息.
这是nodeJS服务器代码(我使用的是SocketIO v0.9.*,因为socket.io-java-client不支持版本> 1.0.0)
@H_450_6@var app = require('http').createServer()
var io = require('socket.io').listen(1337);
io.on('connection',function (socket) {
socket.on('tiklama',function (data) {
console.log(data);
io.emit('tiklama',data);
});
});
和我的Java代码(整个代码为click here):
@H_450_6@protected void onCreate(Bundle savedInstanceStatE) {
super.onCreate(savedInstanceStatE);
setContentView(R.layout.activity_main);
final RelativeLayout anapanel = (RelativeLayout) findViewById(R.id.anapanel);
final TextView tw = (TextView) findViewById(R.id.textView1);
final TextView tw2 = (TextView) findViewById(R.id.textView2);
final TextView tw4 = (TextView) findViewById(R.id.textView4);
try {
socket = new SocketIO("http://SERVERIpaddrESS:1337");
socket.connect(new IOCallBACk() {
@Override
public void onmessage(JSONObject json,IOAckNowledge ack) {
try {
Log.d("x","Server said:" + json.toString(2));
} catch (JSONException E) {
e.printStackTrace();
}
}
@Override
public void onmessage(String data,IOAckNowledge ack) {
Log.d("x","Server said: " + data);
}
@Override
public void onError(SocketIOException socketIOException) {
Log.d("x","an Error occured");
socketIOException.printStackTrace();
}
@Override
public void onDisconnect() {
Log.d("x","Connection terminated.");
}
@Override
public void onConnect() {
Log.d("x","Connection established");
}
@Override
public void on(String event,IOAckNowledge ack,Object... args) {
Log.d("x","Server triggered event '" + event + "'");
if(event.contentEquals("tiklama")) {
tw4.setText("Someone touched to device 1");
}
}
});
// This line is cached until the connection is establisched.
} catch (MalformedURLException E) {
// TODO Auto-generated catch block
e.printStackTrace();
}
anapanel.setOnTouchListener(new OnTouchListener() {
@Override
public Boolean onTouch(View v,MotionEvent event) {
// TODO Auto-generated method stub
if (event.getAction() == MotionEvent.ACTION_DOWN){
socket.emit("tiklama","someoneclicked");
}
return false;
}
});
}
所以这里我的问题是:两台设备都成功连接到NodeJS服务器,当我触摸设备上的屏幕时,我在服务器控制台上看到“有人点击”消息.但是第二个设备没有收到此消息,并且LogCat上没有任何反应.我怎样才能解决这个问题并用socket.io传达这两个设备?
变化:
@H_450_6@io.emit('tiklama',data);
至
@H_450_6@io.sockets.emit('tiklama',data);
Migration from 0.9 doc说:
以上是大佬教程为你收集整理的java – 在Android上发出socket.io消息全部内容,希望文章能够帮你解决java – 在Android上发出socket.io消息所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。