เหตุการณ์การปล่อยแบบกำหนดเองของ socket.io ไม่ทำงาน

ฉันใช้ npm เพื่อติดตั้ง socket.io เซิร์ฟเวอร์ทำงานได้ดีแต่ไม่ได้จับภาพเหตุการณ์ที่ส่งออกแบบกำหนดเองจากไคลเอนต์

เอกสารประกอบบน socket.io ไม่เป็นปัจจุบัน เช่น ไม่มีแพ็คเกจ socket.io-node ใน repo npm ดังที่หน้า git ระบุไว้

ดังนั้นฉันสงสัยว่าฟังก์ชันนี้หายไปในการติดตั้ง socket.io ฐานหรือว่าฉันทำอะไรผิด

รหัสของฉันโดยพื้นฐานจะเป็นดังนี้:

เซิร์ฟเวอร์:

client.on('checkin', function (name) { ... });

ลูกค้า:

socket.emit('checkin',name);

มีอะไรอีกไหมที่ฉันต้องทำ?


person Dave Lee    schedule 10.05.2011    source แหล่งที่มา
comment
คุณสามารถให้รหัสตัวอย่างได้หรือไม่? นอกจากนี้ คุณได้ดูโค้ดตัวอย่างที่ socket.io แล้วหรือยัง   -  person Rob Raisch    schedule 11.05.2011
comment
ใช่ ฉันดูโค้ดตัวอย่างแล้ว ฉันมีแอปพลิเคชั่นแชทธรรมดาที่ใช้งานได้ ทุกอย่างในนั้นยกเว้นโค้ดด้านบนทำงานได้ตามที่คาดไว้ แต่ฉันใช้ได้เฉพาะเหตุการณ์ในตัวเท่านั้น ฉันไม่สามารถสร้างเหตุการณ์ของตัวเองได้ วิธีแก้ปัญหาของฉันคือการมัลติเพล็กซ์ทุกอย่างผ่านเหตุการณ์ 'ข้อความ' แต่นั่นยังน้อยกว่าอุดมคติ   -  person Dave Lee    schedule 11.05.2011


คำตอบ (2)


Socket.io 0.7 เปิดตัวแล้ววันนี้ (ดู ลิงก์นี้) และเหตุการณ์ที่ @penguinbroker ใช้ในโค้ดตัวอย่าง กำลังทำงานอยู่

person helix    schedule 22.06.2011

เอกสารใน repo ได้รับการอัปเดตเมื่อสามวันก่อน โดยเปลี่ยนการอ้างอิงจาก 'socket.io' เป็น 'socket.io-node' ดังนั้นจึงดูเหมือนว่าสิ่งต่าง ๆ มีการเปลี่ยนแปลง

หากต้องการใช้ฟังก์ชันที่คุณต้องการ ลองใช้ eventedsocket ได้ที่ https://github.com/torgeir/eventedsocket (npm ติดตั้ง eventedsocket)

จาก README.md:

Eventedsocket เพิ่มเหตุการณ์เช่นพฤติกรรมให้กับการเชื่อมต่อ socket.io ของคุณ ทำให้สามารถส่งเหตุการณ์จากไคลเอนต์ไปยังเซิร์ฟเวอร์ หรือเซิร์ฟเวอร์ไปยังไคลเอนต์ได้ เหตุการณ์ที่คุณกำหนดเองพร้อมกับข้อมูลที่ต้องการจะได้รับการสื่อสารในรูปแบบ json ผ่านโปรโตคอลใดๆ ที่ socket.io อาจเลือก

person Rob Raisch    schedule 11.05.2011
comment
+1 กับข้อมูล repo; ฉันค่อนข้างแน่ใจว่าฟังก์ชันการทำงานที่เป็นปัญหาที่นี่เป็นของใหม่สำหรับเวอร์ชัน 0.7 ซึ่งมีเฉพาะใน master เท่านั้นและยังไม่ได้เผยแพร่ - person Michelle Tilley; 11.05.2011