คำถามติดแท็ก socket.io

Socket.IO มุ่งหวังที่จะทำให้แอปแบบเรียลไทม์เป็นไปได้ในทุกเบราว์เซอร์และอุปกรณ์มือถือโดยจะเบลอความแตกต่างระหว่างกลไกการขนส่งต่างๆ รองรับการขนส่งหลายรายการเช่น WebSockets, Flash sockets, long polling และอื่น ๆ โดยอัตโนมัติเมื่อการขนส่งล้มเหลว

7
ความแตกต่างระหว่าง socket.io และ websockets
ความแตกต่างระหว่าง socket.io และ websockets ใน node.js คืออะไร? พวกเขาทั้งสองเทคโนโลยีผลักเซิร์ฟเวอร์? ความแตกต่างเพียงอย่างเดียวที่ฉันรู้สึกคือ socket.io อนุญาตให้ฉันส่ง / ส่งข้อความโดยระบุชื่อเหตุการณ์ ในกรณีของ socket.io ข้อความจากเซิร์ฟเวอร์จะเข้าถึงลูกค้าทั้งหมด แต่สำหรับ websockets เดียวกันฉันถูกบังคับให้เก็บอาร์เรย์ของการเชื่อมต่อทั้งหมดและวนผ่านมันเพื่อส่งข้อความไปยังลูกค้าทั้งหมด นอกจากนี้ฉันสงสัยว่าทำไมผู้ตรวจสอบเว็บไซต์ (เช่น Chrome / firebug / fiddler) ไม่สามารถจับข้อความเหล่านี้ (จาก socket.io/websocket) จากเซิร์ฟเวอร์ได้หรือไม่ โปรดอธิบายสิ่งนี้

3
ห้องสมุด websocket ใดที่จะใช้กับ Node.js [ปิด]
ปิด. คำถามนี้ไม่เป็นไปตามหลักเกณฑ์กองมากเกิน ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นไปตามหัวข้อสำหรับ Stack Overflow ปิดให้บริการใน3 ปีที่ผ่านมา ขณะนี้มีห้องสมุด websocket มากมายสำหรับ node.js ซึ่งเป็นที่นิยมมากที่สุด: https://github.com/Worlize/WebSocket-Node https://github.com/einaros/ws https://github.com/LearnBoost/engine.io https://github.com/learnboost/socket.io https://github.com/sockjs อย่างไรก็ตามฉันไม่พบการเปรียบเทียบที่เป็นรูปธรรมใด ๆ ระหว่างพวกเขา ... เห็นได้ชัดว่า Socket.io ยอดเยี่ยมมาก แต่ก็ค่อนข้างล้าสมัยและไม่สามารถสร้างได้ ทั้ง ws และ websocket-node อ้างว่ามันเร็วที่สุด และ engine.io นั้นดูใหม่ แต่ก็หนักกว่าของ aletarntives ที่เบากว่ามาก มันจะน่าอัศจรรย์ถ้าเราหรือใครสักคนสามารถรวบรวมคำตอบที่ทำหน้าที่เป็นแนวทางในการใช้ซ็อกเก็ตไลบรารี่และเมื่อใดรวมถึงการเปรียบเทียบระหว่างพวกเขา

10
ส่งคำตอบไปยังลูกค้าทั้งหมดยกเว้นผู้ส่ง
ในการส่งบางสิ่งไปยังไคลเอนต์ทั้งหมดคุณใช้: io.sockets.emit('response', data); ในการรับจากลูกค้าคุณใช้: socket.on('cursor', function(data) { ... }); ฉันจะรวมสองวิธีเพื่อให้ได้รับข้อความบนเซิร์ฟเวอร์จากไคลเอนต์ฉันจะส่งข้อความนั้นไปยังผู้ใช้ทั้งหมดยกเว้นที่ส่งข้อความได้อย่างไร socket.on('cursor', function(data) { io.sockets.emit('response', data); }); ฉันต้องแฮ็คมันโดยส่งรหัสลูกค้าพร้อมข้อความจากนั้นตรวจสอบลูกค้าฝั่งหรือมีวิธีที่ง่ายกว่า?

3
กวดวิชาเริ่มต้นที่ดีเพื่อ socket.io? [ปิด]
ตามที่เป็นอยู่ในปัจจุบันคำถามนี้ไม่เหมาะสำหรับรูปแบบคำถาม & คำตอบของเรา เราคาดหวังคำตอบที่จะได้รับการสนับสนุนจากข้อเท็จจริงการอ้างอิงหรือความเชี่ยวชาญ แต่คำถามนี้อาจเรียกร้องให้มีการอภิปรายโต้แย้งโต้แย้งหรือการอภิปรายเพิ่มเติม หากคุณรู้สึกว่าคำถามนี้สามารถปรับปรุงและเปิดใหม่ได้โปรดไปที่ศูนย์ช่วยเหลือเพื่อขอคำแนะนำ ปิดให้บริการใน8 ปีที่ผ่านมา ฉันใหม่มากสำหรับโลกแห่งการพัฒนาเว็บและกระโดดเข้าสู่ bandwagon เพราะฉันพบว่าแนวคิดของ HTML5 น่าสนใจมาก ฉันค่อนข้างมั่นใจในการทำงานกับ Canvas และตอนนี้อยากจะย้ายไปที่ websockets ส่วนหนึ่งของมัน ฉันมาทำความเข้าใจกับ socket.io เป็นเพียงกรอบการทำงานเมื่อเราต้องการทำงานกับเว็บซ็อกเก็ต พอยน์เตอร์ใด ๆ เกี่ยวกับสิ่งที่การสอนและตัวอย่างที่อ้างถึงสำหรับหุ่นจำลองทั้งหมดจะได้รับการชื่นชมอย่างมาก!

12
ส่งข้อความไปยังไคลเอ็นต์ที่ระบุพร้อมกับ socket.io และ node.js
ฉันทำงานกับ socket.io และ node.js และจนถึงตอนนี้มันก็ค่อนข้างดี แต่ฉันไม่รู้วิธีส่งข้อความจากเซิร์ฟเวอร์ไปยังไคลเอนต์ที่เฉพาะเจาะจงดังนี้: client.send(message, receiverSessionId) แต่ไม่.send()หรือ.broadcast()วิธีการที่ดูเหมือนจะต้องจัดหาของฉัน สิ่งที่ฉันได้พบว่าเป็นวิธีแก้ปัญหาที่เป็นไปได้คือ.broadcast()วิธีการที่ยอมรับเป็นพารามิเตอร์ที่สองอาร์เรย์ของ SessionIds ที่ไม่ส่งข้อความดังนั้นฉันสามารถผ่านอาร์เรย์ที่มี SessionIds ทั้งหมดที่เชื่อมต่อในขณะนั้นไปยังเซิร์ฟเวอร์ยกเว้นหนึ่ง ฉันต้องการส่งข้อความ แต่ฉันรู้สึกว่าต้องมีทางออกที่ดีกว่า ความคิดใด ๆ

5
socket.io ห้องหรือ namespacing?
ฉันกำลังตรวจสอบ nodejs / socket.io สำหรับการแชทตามเวลาจริงและฉันต้องการคำแนะนำสำหรับการติดตั้งห้อง สิ่งใดจะดีไปกว่าการใช้เนมสเปซหรือใช้คุณลักษณะของห้องเพื่อแยกส่วนของแชทจากกันอย่างสมบูรณ์ ความแตกต่างทางเทคนิคที่แท้จริงระหว่างห้องและ namespace คืออะไร? มีความแตกต่างของการใช้ทรัพยากรหรือไม่
163 node.js  socket.io 

9
node.js, socket.io พร้อม SSL
ฉันกำลังพยายามให้ socket.io ทำงานด้วยใบรับรอง SSL ของฉัน แต่จะไม่เชื่อมต่อ ฉันใช้รหัสจากตัวอย่างแชท: var https = require('https'); var fs = require('fs'); /** * Bootstrap app. */ var sys = require('sys') require.paths.unshift(__dirname + '/../../lib/'); /** * Module dependencies. */ var express = require('express') , stylus = require('stylus') , nib = require('nib') , sio = require('socket.io'); /** * …

26
Socket.IO - ฉันจะดูรายการซ็อกเก็ต / ไคลเอ็นต์ที่เชื่อมต่อได้อย่างไร
ฉันพยายามรับรายการซ็อกเก็ต / ไคลเอนต์ทั้งหมดที่เชื่อมต่ออยู่ในขณะนี้ io.sockets ไม่คืนอาเรย์อย่างน่าเสียดาย ฉันรู้ว่าฉันสามารถเก็บรายการของตัวเองโดยใช้อาร์เรย์ แต่ไม่คิดว่านี่เป็นทางออกที่ดีที่สุดสำหรับ 2 เหตุผล: ความฟุ่มเฟือย Socket.IO เก็บสำเนาของรายการนี้ไว้แล้ว Socket.IO มีวิธีการตั้งค่าฟิลด์โดยพลการสำหรับลูกค้า (เช่น:) socket.set('nickname', 'superman')ดังนั้นฉันจะต้องติดตามการเปลี่ยนแปลงเหล่านี้หากฉันต้องรักษารายการของตัวเอง ช่วยด้วย?
159 node.js  socket.io 

13
node.js TypeError: พา ธ ต้องเป็นแบบสัมบูรณ์หรือระบุรูทเพื่อ res.sendFile [ล้มเหลวในการวิเคราะห์ JSON]
[เพิ่ม] ดังนั้นปัญหาต่อไปของฉันคือเมื่อฉันลองเพิ่มการพึ่งพาใหม่ (ติดตั้ง npm - บันทึก socket.io) ไฟล์ JSON นั้นถูกต้องเช่นกัน ฉันได้รับข้อผิดพลาดนี้: ไม่สามารถแยกวิเคราะห์ json npm ERR! Unexpected string npm ERR! File: /Users/John/package.json npm ERR! Failed to parse package.json data. npm ERR! package.json must be actual JSON, not just JavaScript. npm ERR! npm ERR! This is not a bug in npm. npm …

19
รับที่อยู่ IP ของไคลเอนต์ใน socket.io
เมื่อใช้ socket.IO ในเซิร์ฟเวอร์ Node.js มีวิธีง่ายๆในการรับที่อยู่ IP ของการเชื่อมต่อขาเข้าหรือไม่? ฉันรู้ว่าคุณสามารถรับได้จากการเชื่อมต่อ HTTP มาตรฐาน แต่ socket.io เป็นสัตว์ร้ายที่แตกต่างกันเล็กน้อย

6
socket.emit () กับ socket.send ()
อะไรคือความแตกต่างระหว่างสองสิ่งนี้? ฉันสังเกตว่าถ้าฉันเปลี่ยนจากsocket.emitเป็นsocket.sendในโปรแกรมที่ใช้งานได้เซิร์ฟเวอร์ไม่สามารถรับข้อความได้แม้ว่าฉันจะไม่เข้าใจว่าทำไมก็ตาม ฉันยังพบว่าในโปรแกรมของฉันถ้าฉันเปลี่ยนจากsocket.emitการsocket.sendเซิร์ฟเวอร์ได้รับข้อความ แต่มันดูเหมือนว่าจะได้รับมันหลายครั้ง เมื่อฉันใช้เพื่อดูว่าเซิร์ฟเวอร์ที่ได้รับก็แสดงให้เห็นบางสิ่งบางอย่างที่แตกต่างจากเมื่อฉันใช้console.log()socket.emit ทำไมพฤติกรรมนี้ คุณจะรู้ได้อย่างไรว่าเมื่อใดควรใช้socket.emitหรือsocket.send?

13
ใช้ PHP กับ Socket.io
เป็นไปได้หรือไม่ที่จะใช้ Sockets.io ในฝั่งไคลเอ็นต์และสื่อสารกับแอปพลิเคชันที่ใช้ PHP บนเซิร์ฟเวอร์ PHP รองรับวิธีการเขียนโค้ดแบบ 'การเชื่อมต่อที่ยาวนาน' หรือไม่? โค้ดตัวอย่างทั้งหมดที่ฉันพบสำหรับ socket.io ดูเหมือนจะเป็นของ node.js ทางฝั่งเซิร์ฟเวอร์ดังนั้นจึงไม่มีความช่วยเหลือ
128 php  socket.io 

5
การเชื่อมต่อ Socket.IO พร้อมกันสูงสุด
คำถามนี้ถูกถามก่อนหน้านี้ แต่ไม่เร็ว ๆ นี้และไม่ได้คำตอบที่ชัดเจน การใช้ Socket.io มีจำนวนการเชื่อมต่อพร้อมกันสูงสุดที่สามารถรักษาได้ก่อนที่คุณจะต้องเพิ่มเซิร์ฟเวอร์อื่นหรือไม่? มีใครรู้บ้างไหมว่าสภาพแวดล้อมการผลิตที่ใช้งานอยู่ซึ่งใช้เว็บซ็อกเก็ต (โดยเฉพาะอย่างยิ่ง socket.io) ในขนาดใหญ่ ฉันอยากทราบว่าการตั้งค่าแบบใดที่ดีที่สุดสำหรับการเชื่อมต่อสูงสุด? เนื่องจาก Websockets ถูกสร้างขึ้นบน TCP ความเข้าใจของฉันก็คือเว้นแต่ว่าพอร์ตจะแชร์ระหว่างการเชื่อมต่อคุณจะถูก จำกัด โดยขีด จำกัด พอร์ต 64K แต่ผมเคยเห็นยังมีรายงานของการเชื่อมต่อโดยใช้ 512K Gretty ผมก็เลยไม่รู้

7
การตรวจสอบความถูกต้องของ Socket.IO
ฉันกำลังพยายามใช้ Socket.IO ใน Node.js และกำลังพยายามอนุญาตให้เซิร์ฟเวอร์ระบุตัวตนให้กับไคลเอ็นต์ Socket.IO แต่ละตัว เนื่องจากรหัสซ็อกเก็ตอยู่นอกขอบเขตของรหัสเซิร์ฟเวอร์ http จึงไม่สามารถเข้าถึงข้อมูลคำขอที่ส่งได้โดยง่ายดังนั้นฉันจึงคิดว่าจะต้องส่งขึ้นในระหว่างการเชื่อมต่อ วิธีที่ดีที่สุดคืออะไร 1) รับข้อมูลไปยังเซิร์ฟเวอร์เกี่ยวกับผู้ที่เชื่อมต่อผ่าน Socket.IO 2) รับรองความถูกต้องว่าพวกเขาเป็นใคร (ฉันกำลังใช้ Express อยู่ถ้าสิ่งนั้นง่ายขึ้น)

4
ไคลเอ็นต์ Node.js สำหรับเซิร์ฟเวอร์ socket.io
ฉันมีเซิร์ฟเวอร์ socket.io ที่ทำงานอยู่และหน้าเว็บที่ตรงกันกับไคลเอนต์ socket.io.js ทั้งหมดทำงานได้ดี แต่ฉันสงสัยว่าในเครื่องอื่นจะเรียกใช้แอปพลิเคชัน node.js แยกต่างหากซึ่งจะทำหน้าที่เป็นไคลเอนต์และเชื่อมต่อกับเซิร์ฟเวอร์ socket.io ที่กล่าวถึงหรือไม่
120 node.js  socket.io 

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.