0
我在web服務器上使用Node.js和Socket.io。和我的客戶端在Android應用程序。我正在使用恩澤圖書館進行聊天。但無法發送或接收兩個客戶端,甚至在服務器端。 請幫幫我。無法在android上使用socket.io和node.js實現聊天
客戶端的代碼。
try {
socket = IO.socket("http://192.168.1.10:9090");
socket.connect(); // initiate connection to socket server
} catch (URISyntaxException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
send.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
socket.emit("chat_message",chattext=chat_text.getText().toString());
adapter.add(new Data_Provider(position, chat_text.getText().toString()));
chattext=chat_text.getText().toString();
//position=!position;
chat_text.setText("");
}});
socket.on(Socket.EVENT_CONNECT, new Emitter.Listener() {
@Override
public void call(Object... args) {
socket.emit("foo", "hi");
Log.d("1 socket connect", "successfuly really connected");
}
}).on("connection", new Emitter.Listener() {
@Override
public void call(Object... args) {
Log.d("socket connect", "successfuly connected to server");
}
}).on(Socket.EVENT_DISCONNECT, new Emitter.Listener() {
@Override
public void call(Object... args) {
Log.d("socket disconnect", "successfuly disconnected");
}
});
socket.on("chat_message", new Emitter.Listener() {
@Override
public void call(Object... arg0) {
// TODO Auto-generated method stub
String data = (String)arg0[0];
adapter.add(new Data_Provider(true, data));
chattext=data;
}
}).on(Socket.EVENT_ERROR, new Emitter.Listener() {
@Override
public void call(Object... args) {
Exception err = (Exception)args[0];
Log.d("err", ""+err);
}
});;
請張貼從logcat的 – eriuzo
d日誌/朋友ID(1433):--- 238916 I /連接(1433):以http://192.168.1.10:7474/db/data/cypher I /發送查詢爲(1433):{「query」:「START n =節點(238916)RETURN id(n),n.First_Name,n.Last_Name」,「params」:{}} I /編舞師(1433):跳過171幀!應用程序可能在其主線程上做了太多工作。 D/1套接字連接(1433):successfuly真正連接 個人聊天中的朋友ID(1433):{「id(n)」,「n.First_Name」,「n.Last_Name」 ], 個人聊天中的朋友ID(1433):「data」:[[238916,「Amit」,「Joshi」]] D /朋友id在聊天中個人(1433):} 238916 Amit Joshi – user3160062
插入數據後不調用adapter.notifyDataSetChanged()。作爲一種很好的做法,在UI線程中調用add方法。在你的例子中,它在非ui線程中被調用。 –