คำถามติดแท็ก websocket

WebSocket เป็น API ที่สร้างขึ้นบนซ็อกเก็ต TCP และโปรโตคอลสำหรับการสื่อสารแบบสองทิศทางแบบฟูลดูเพล็กซ์ระหว่างไคลเอนต์และเซิร์ฟเวอร์โดยไม่มีค่าใช้จ่ายของ HTTP

5
มีไคลเอนต์ WebSocket ที่ใช้กับ Python หรือไม่ [ปิด]
ปิด. คำถามนี้ไม่เป็นไปตามหลักเกณฑ์กองมากเกิน ขณะนี้ยังไม่ยอมรับคำตอบ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นหัวข้อสำหรับ Stack Overflow ปิดให้บริการใน6 ปีที่ผ่านมา ปรับปรุงคำถามนี้ ฉันพบโครงการนี้: http://code.google.com/p/standalonewebsocketserver/สำหรับเซิร์ฟเวอร์ WebSocket แต่ฉันต้องติดตั้งไคลเอนต์ WebSocket ใน python ฉันต้องรับคำสั่งบางอย่างจาก XMPP ในเซิร์ฟเวอร์ WebSocket

12
WebSockets และ Apache Proxy: วิธีกำหนดค่า mod_proxy_wstunnel
ฉันมี : Apache(v2.4) บนพอร์ต 80 ของเซิร์ฟเวอร์ของฉันwww.domain1.comกับmod_proxyและmod_proxy_wstunnelเปิดใช้งาน node.js + socket.io บนพอร์ต 3001 ของเซิร์ฟเวอร์เดียวกัน การเข้าถึงwww.domain2.com(มีพอร์ต 80) เปลี่ยนเส้นทางไป 2. ต้องขอบคุณวิธีการอธิบายที่นี่ ฉันได้ตั้งค่านี้ในการกำหนดค่า Apache: <VirtualHost *:80> ServerName www.domain2.com ProxyPass / http://localhost:3001/ ProxyPassReverse / http://localhost:3001/ ProxyPass / ws://localhost:3001/ ProxyPassReverse / ws://localhost:3001/ </VirtualHost> ใช้งานได้กับทุกอย่างยกเว้นส่วน websocket: ws://...ไม่ได้รับการส่งผ่านพร็อกซีอย่างที่ควรจะเป็น เมื่อฉันเข้าถึงเพจwww.domain2.comฉันมี: Impossible to connect ws://www.domain2.com/socket.io/?EIO=3&transport=websocket&sid=n30rqg9AEqZIk5c9AABN. คำถาม: จะทำให้ Apache Proxy เป็น WebSockets …

8
วิธีสร้าง WebSocket URI ที่สัมพันธ์กับ URI ของเพจ
ฉันต้องการสร้าง WebSocket URI ที่สัมพันธ์กับ URI ของเพจที่ด้านเบราว์เซอร์ สมมติว่าในกรณีของฉันแปลง HTTP URI เช่น http://example.com:8000/path https://example.com:8000/path ถึง ws://example.com:8000/path/to/ws wss://example.com:8000/path/to/ws สิ่งที่ฉันกำลังทำอยู่คือแทนที่ตัวอักษร 4 ตัวแรก "http" ด้วย "ws" และต่อท้าย "/ to / ws" มีวิธีที่ดีกว่านี้หรือไม่?


9
การเชื่อมต่อใหม่ของไคลเอ็นต์เมื่อเซิร์ฟเวอร์รีบูตใน WebSocket
ฉันใช้เว็บซ็อกเก็ตโดยใช้ PHP5 และเบราว์เซอร์ Chrome เป็นไคลเอนต์ ฉันได้นำรหัสจากเว็บไซต์http://code.google.com/p/phpwebsocket/ ฉันเรียกใช้เซิร์ฟเวอร์และไคลเอนต์ก็เชื่อมต่อด้วย ทักแชทได้เหมือนกัน ตอนนี้เมื่อฉันรีสตาร์ทเซิร์ฟเวอร์ (โดยการฆ่ามันและเริ่มต้นใหม่อีกครั้ง) ไคลเอนต์จะได้รับข้อมูลที่ถูกตัดการเชื่อมต่อ แต่จะไม่เชื่อมต่อกับเซิร์ฟเวอร์อีกครั้งโดยอัตโนมัติเมื่อฉันส่งข้อความ จะบรรลุเป้าหมายนี้ได้อย่างไร? เช่นเดียวกับเมื่อฉันได้รับข้อมูลที่ไม่เชื่อมต่อฉันควรตรวจสอบและส่งไปยัง JavaScript เพื่อรีเฟรชหน้าหรือเชื่อมต่อใหม่?

1
ความแตกต่างระหว่าง websockets และการสำรวจระยะยาวสำหรับเซิร์ฟเวอร์เกมแบบเทิร์นเบส
ฉันกำลังเขียนเซิร์ฟเวอร์สำหรับเกม iOS เกมจะเปิดตามและครั้งเดียวที่เซิร์ฟเวอร์ต้องการส่งข้อมูลไปยังไคลเอนต์คือการแจ้งการเคลื่อนไหวของฝ่ายตรงข้าม ฉันอยากรู้ว่ามีใครสามารถแสดงความคิดเห็นเกี่ยวกับประสิทธิภาพและความสะดวกในการใช้งานที่แตกต่างระหว่างการใช้ websockets และการสำรวจความคิดเห็นแบบยาว นอกจากนี้หากฉันใช้เว็บซ็อกเก็ตฉันควรใช้เพื่อรับข้อมูลและส่งคำขอ POST สำหรับสิ่งอื่น ๆ เท่านั้นหรือการสื่อสารทั้งหมดควรผ่าน websocket? นอกจากนี้มีอะไรเพิ่มเติมที่ต้องพิจารณาระหว่าง websockets และการสำรวจระยะยาวหากฉันสนใจที่จะสร้างเว็บไคลเอ็นต์ด้วย

6
รับเหตุผลว่าทำไม websockets ปิดด้วยรหัสปิด 1006
ฉันต้องการทราบเหตุผลที่ websockets ปิดดังนั้นฉันจึงสามารถแสดงข้อความที่ถูกต้องให้กับผู้ใช้ ฉันมี sok.onerror=function (evt) {//since there is an error, sockets will close so... sok.onclose=function(e){ console.log("WebSocket Error: " , e);} รหัสคือ 1006 เสมอและเหตุผลคือ "" เสมอ แต่ฉันต้องการบอกเหตุผลในการปิดที่แตกต่างกันออกไป ตัวอย่างเช่นบรรทัด comand ให้เหตุผลข้อผิดพลาด: "คุณไม่สามารถลบสิ่งนั้นได้เนื่องจากฐานข้อมูลไม่ยอมให้คุณ" แต่ในคอนโซลของ Chrome เหตุผลยังคงเป็น "" มีวิธีอื่นในการบอกเหตุผลการปิดที่แตกต่างออกไปไหม

6
วิธีสร้างเซิร์ฟเวอร์ websockets ใน PHP
มีบทช่วยสอนหรือคำแนะนำที่แสดงวิธีการเขียนเซิร์ฟเวอร์เว็บซ็อกเก็ตแบบง่าย ๆ ใน PHP หรือไม่ ผมลองหาใน google แล้วครับ แต่ไม่เจอมากมาย ฉันพบ phpwebsockets แต่ตอนนี้มันล้าสมัยและไม่รองรับโปรโตคอลใหม่ล่าสุด ฉันพยายามอัปเดตด้วยตัวเอง แต่ดูเหมือนจะไม่ได้ผล #!/php -q <?php /* >php -q server.php */ error_reporting(E_ALL); set_time_limit(0); ob_implicit_flush(); $master = WebSocket("localhost",12345); $sockets = array($master); $users = array(); $debug = false; while(true){ $changed = $sockets; socket_select($changed,$write=NULL,$except=NULL,NULL); foreach($changed as $socket){ if($socket==$master){ $client=socket_accept($master); if($client<0){ console("socket_accept() failed"); …

1
Xmpp Vs Websocket [ปิดแล้ว]
ปิด . คำถามนี้จะต้องมีมากขึ้นมุ่งเน้น ขณะนี้ยังไม่ยอมรับคำตอบ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เน้นไปที่ปัญหาเดียวโดยแก้ไขโพสต์นี้เท่านั้น ปิดให้บริการ1 ปีที่ผ่านมา ปรับปรุงคำถามนี้ ฉันกำลังจะพัฒนาเว็บไซต์ที่มีการแชทแบบเรียลไทม์ ฉันรู้ว่าสามารถใช้งานได้โดยใช้โปรโตคอล xmpp หรือ websocket ฉันรู้ด้วยว่าโปรโตคอล xmpp ได้รับการพัฒนาในปี 2542 และฉันคิดว่ามันน่าจะเป็นผู้ใหญ่แล้วในทางกลับกันโปรโตคอล websocket ได้รับการพัฒนาในปี 2554 websocket จำเป็นต้องมีอะไรบ้างถ้า xmpp จัดการการสนทนาแบบเรียลไทม์ได้ดี? อะไรคือความแตกต่างที่สำคัญระหว่าง 2 โปรโตคอล? และเมื่อไหร่ที่ฉันควรเลือกหนึ่งในนั้น?

11
ฉันจะส่งและรับข้อความ WebSocket ทางฝั่งเซิร์ฟเวอร์ได้อย่างไร?
ฉันจะส่งและรับข้อความทางฝั่งเซิร์ฟเวอร์โดยใช้ WebSocket ตามโปรโตคอลได้อย่างไร เหตุใดฉันจึงดูเหมือนสุ่มไบต์ที่เซิร์ฟเวอร์เมื่อฉันส่งข้อมูลจากเบราว์เซอร์ไปยังเซิร์ฟเวอร์ ข้อมูลถูกเข้ารหัสอย่างใด? การจัดเฟรมทำงานอย่างไรในทิศทางเซิร์ฟเวอร์→ไคลเอนต์และไคลเอนต์→เซิร์ฟเวอร์

5
การสร้างตัวอย่าง WebSocket“ Hello World”
ฉันไม่เข้าใจว่าทำไมฉันจึงไม่สามารถทำให้โค้ดต่อไปนี้ใช้งานได้ ฉันต้องการเชื่อมต่อกับ JavaScript กับแอปพลิเคชันคอนโซลเซิร์ฟเวอร์ของฉัน จากนั้นส่งข้อมูลไปยังเซิร์ฟเวอร์ นี่คือรหัสเซิร์ฟเวอร์: static void Main(string[] args) { TcpListener server = new TcpListener(IPAddress.Parse("127.0.0.1"), 9998); server.Start(); var client = server.AcceptTcpClient(); var stream = client.GetStream(); while (true) { var buffer = new byte[1024]; // wait for data to be received var bytesRead = stream.Read(buffer, 0, buffer.Length); var r = …

2
ความแตกต่างระหว่าง webhook และ websocket
ฉันอยากจะแชทแบบเรียลไทม์มาโดยตลอด ฉันเคยทำเมื่อหลายปีก่อนใน PHP + Ajax + Mysql และเซิร์ฟเวอร์ของฉันพัง จากนั้นฉันก็ลองใช้ Flash + ไฟล์ข้อความ ฉันยอมแพ้และไม่ได้พยายามเลยใน 10 ปี แต่เมื่อไม่นานมานี้ฉันได้ยินเกี่ยวกับ webhooks และ websockets และทั้งสองดูเหมือนจะเป็นวิธีที่จะทำ แต่ฉันไม่ค่อยเข้าใจความแตกต่าง ใครสามารถอธิบาย?

2
วิธีการตรวจสอบเมื่อเบราว์เซอร์ throttles ตัวจับเวลาและ websockets ขาดการเชื่อมต่อหลังจากที่ผู้ใช้ออกจากแท็บหรือปิดหน้าจอ? (จาวาสคริปต์)
บริบท เกมที่จัดส่งเป็นแอปเว็บโปรเกรสซีฟซึ่งมีตัวจับเวลา ( setTimeout, setInterval) และการเชื่อมต่อ websocket เพื่อรับการสื่อสารตามเวลาจริง เกิดอะไรขึ้น ทุกอย่างเรียบร้อยตราบใดที่ผู้ใช้ยังอยู่ในแอพ แต่เมื่อผู้ใช้ไปที่แท็บอื่นหรือแอพอื่นหรือปิดหน้าจอ (ในกรณีที่ใช้มือถือ) มันจะกลายเป็น "โลกที่ไม่รู้จักชั่วร้าย" เว็บซ็อคเก็ตอาจหรือไม่อาจกลายเป็น "หยุดชั่วคราว" หรือ "ปิด" ตัวจับเวลาดูเหมือนว่าพวกเขาจะถูกควบคุมปริมาณหรือเลิก พฤติกรรมนี้ดูเหมือนจะขึ้นอยู่กับเบราว์เซอร์และแพลตฟอร์มและบางทีอาจขึ้นอยู่กับพฤติกรรมของผู้ใช้ ฉันเดาว่าเบราว์เซอร์และระบบปฏิบัติการมีวงจร / กลไกของตัวเองเพื่อประหยัดแบตเตอรี่และ / หรือการคำนวณ เมื่อผู้ใช้กลับมาแอปนั้นอยู่ในสถานะที่ไม่รู้จักและฉันกำลังพยายามกู้คืนสถานะอย่างถูกต้อง เกี่ยวกับเว็บซ็อกเก็ตฉันมีการเชื่อมต่ออัตโนมัติกับsocket.ioและเชื่อมต่ออีกครั้ง - websocketแต่มันก็ไม่เพียงพอที่จะแก้ปัญหาทุกอย่าง กำลังมองหาคำตอบ "วงจรชีวิต" ของเบราว์เซอร์ต่าง ๆ ที่เกี่ยวข้องกับสิ่งเหล่านี้คืออะไร? เป็นเอกสารนี้หรือไม่? พวกเขาตัดสินใจปิดและเค้นเมื่อไหร่? พวกเขาทำอะไรกับ websockets อย่างแน่นอน? เบราว์เซอร์เพิ่งยกเลิกการเชื่อมต่อหรือไม่ พวกเขาทำอะไรกับตัวจับเวลาอย่างแน่นอน? พวกเขาเร่งเร้าพวกเขาหรือหักหลังพวกเขาหรืออย่างอื่น เกิดอะไรขึ้นกับการใช้งานจาวาสคริปต์โดยทั่วไป? หยุดชั่วคราว / ทำลาย / ควบคุมปริมาณ? มีวิธีที่จะขอเข้าสู่วงจรชีวิตของเบราว์เซอร์บางประเภทเมื่อกำลังจะปิดบางสิ่งหรือไม่? สิ่งเดียวที่ฉันสามารถค้นหาได้คือAPI …

1
ใช้การบีบอัด websocket กับ uWebSockets.js และ Websocket-Sharp
เรามีเกมมือถือที่ใช้ websocket สำหรับเชื่อมต่อ เซิร์ฟเวอร์เป็น app Node.js ใช้uWebSockets.jsห้องสมุดและลูกค้าเป็น app สามัคคีโดยใช้WebSocket ชาร์ปห้องสมุด พวกเขาเล่นได้ดีด้วยกันและเราไม่ได้พบปัญหากับพวกเขา เมื่อเร็ว ๆ นี้เราต้องการที่จะช่วยให้การบีบอัด WebSocket ห้องสมุดทั้งสองระบุว่าพวกเขาสนับสนุนส่วนขยายการบีบอัดข้อความต่อข้อความ แต่ดูเหมือนว่ามีบางสิ่งที่เข้ากันไม่ได้ เพราะเมื่อเรากำหนดค่าให้ใช้การบีบอัดการเชื่อมต่อ websocket จะปิดลงทันทีในการจับมือกัน นอกจากนี้เรายังทดสอบไคลเอ็นต์ด้วยไลบรารีwsและเป็นตัวอย่างสำหรับการบีบอัดด้วยผลลัพธ์เดียวกัน เราพยายามแก้ไขด้วยตัวเลือกการบีบอัด ws และพบว่าเมื่อเราแสดงความคิดเห็นตัวเลือก serverMaxWindowBits (ค่าเริ่มต้นของมูลค่าการเจรจาต่อรอง) การเชื่อมต่อสามารถสร้างและส่งและรับข้อความได้โดยไม่มีปัญหา นอกจากนี้เรายังถามเกี่ยวกับการควบคุม serverMaxWindowBits ใน uWebsockets สิ่งสุดท้ายที่เราพยายามคือการเชื่อมต่อเซิร์ฟเวอร์ uWS ขั้นต่ำและไคลเอนต์ websocket-sharp นี่คือรหัสสำหรับเซิร์ฟเวอร์: const uWS = require('uWebSockets.js'); const port = 5001; const app = uWS.App({ }).ws('/*', { …
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.