我想将数据从android客户端的socket发送到node.js服务器.. 我在服务器端做了什么:
import io.socket.client.IO;
import io.socket.client.Socket;
import io.socket.emitter.Emitter;
public class MainActivity extends AppCompatActivity {
private static final String TAG = "MainActivity";
EditText edt;
Button btn;
boolean msg;
private Socket mSocket;
{
try {
mSocket = IO.socket("http://192.168.1.101/");
Log.v(TAG,"fine");
} catch (URISyntaxException e) {
Log.v(TAG,"Error..... "+e.getMessage());
e.printStackTrace();
}
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mSocket.connect();
edt=(EditText)findViewById(R.id.editText);
btn=(Button)findViewById(R.id.button);
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
attemptSend();
}
});
}
private void attemptSend() {
String message = edt.getText().toString().trim();
if (TextUtils.isEmpty(message)) {
return;
}
mSocket.emit("new user", message, true);
Toast.makeText(this, message, Toast.LENGTH_SHORT).show();
}
并在我的客户端android:
RasterizePixelHeight
但是它出现了错误: 扔掉//未处理的错误' event ^ TypeError:回调不是函数
答案 0 :(得分:0)
我相信您的服务器端代码看起来不错。问题在于客户端...当您发出“新用户”事件时,请确保它作为参数传递的函数,而不是传递布尔值(true)。试试这个,
mSocket.emit(“新用户”,消息,回调);
此外,根据您从serverSide获得的回调结果,您可以执行某些操作,否则您会执行其他操作。
希望这有助于此!
答案 1 :(得分:0)
我在这里找到了解决方案:
mSocket.emit("new user", message, new Ack() {
@Override
public void call(Object... args) {
//Code goes here
}
});
}