-2
私は次のエラーを取得:サーバー上のJSON.parse()JavaScriptの予期しないトークン{
undefined:2
{"data":{"my":88.43869018554688,"mx":-293.594970703125},"id":2}
^
SyntaxError: Unexpected token {
at Object.parse (native)
at Socket.<anonymous>(/home/lchost/fishy.io/server/custom_modules/game.js:34:23)
私のコード:アンドロイドクライアント上
socket.on('data', function(data) {
console.log(data.toString());
var json = JSON.parse(data.toString());
...
コード:
public class TouchEventObject implements JSONable {
public float mx;
public float my;
public TouchEventObject(float mx, float my) {
this.mx = mx;
this.my = my;
}
@Override
public JSONObject toJSON() {
JSONObject json = new JSONObject();
try {
json.put("mx", mx);
json.put("my", my);
} catch(Exception e) {};
return json;
}
}
をし、 :
@Override
public boolean onTouchEvent(MotionEvent event) {
if(world != null && me != null && canvas_width != -1 && canvas_height != -1) {
Camera camera = Camera.getInstance();
float x = camera.getX() <= 0 ? event.getX() - me.x*camera.getScale() : camera.getX() >= world.WIDTH - canvas_width ? ((world.WIDTH - canvas_width) + event.getX()) - me.x*camera.getScale() : event.getX() - canvas_width/2;
float y = camera.getY() <= 0 ? event.getY() - me.y*camera.getScale() : camera.getY() >= world.HEIGHT - canvas_height ? ((world.HEIGHT - canvas_height) + event.getY()) - me.y*camera.getScale() : event.getY() - canvas_height/2;
if (client != null && client.isConnected()) {
JSONObject json = new TouchEventObject(x, y).toJSON();
client.sendMessage(PacketType.MOUSEMOVE, json);
}
}
return true;
}
何が問題なのか? これは本当に奇妙です。これは何度もエラーが発生しないが、3または4がソケット転送を正常に処理した後に失敗するためです。 ありがとうございます。
は、なぜあなたは[ジャバスクリプト] .. – nicael
JSON文字列+ JSON文字列でそれをタグ付けします! =有効なJSON。一度に2つのJSON文字列を解析することはできません。 –
'console.log(data.toString());の出力は何ですか? – mhu