ฉันมีปัญหาแปลกที่สุดในการพยายามส่งข้อมูลจากเบราว์เซอร์ไคลเอนต์ไปยังเซิร์ฟเวอร์โหนดของฉันโดยใช้ SocketIO การส่งจากเซิร์ฟเวอร์ไปยังไคลเอนต์ทำงานได้ดี แต่ในทางกลับกัน ฉันได้รับข้อผิดพลาดที่ไม่ได้กำหนดไว้ ต่อไปนี้เป็นลักษณะคร่าวๆ ที่เรียบง่ายสุด ๆ
เซิร์ฟเวอร์โหนด (app.js)
io.on("connection", function(socket) {
socket.on("pageReady", function(data) {
console.log('pageReady called');
console.log(data);
return socket.emit('newline', '###SOCKET STARTED###');
});
socket.on("disconnect", function() {
return console.log('disconnected');
});
});
เบราว์เซอร์ (client.js)
var socket;
socket = io.connect("http://localhost:5678");
socket.on("newline", function(data) {
return $('#socketData').append('<li>' + data + '</li>');
});
socket.emit("pageReady", "test");
ง่ายมากใช่มั้ย? ไม่มีอะไรพิเศษ. เมื่อฉันออกจากเซิร์ฟเวอร์ ก็ทำงานได้ดี แต่เมื่อไคลเอนต์เรียก "pageReady" โหนดตอบสนองด้วยสิ่งนี้
/Volumes/HOME/Users/user/git/sockettest/app.js:89
console.log(data);
^
ReferenceError: data is not defined
ข้อมูลควรส่งคืน "ทดสอบ" แต่ไม่ใช่ ผมทำอะไรผิดหรือเปล่า?