#html #websocket #phpwebsocket
#HTML #websocket #phpwebsocket
Вопрос:
Я пытался реализовать сервер сокетов HTML5 для трансляции всего, что он получает, всем подключенным клиентам, но безуспешно.
Я новичок в сокетах, может кто-нибудь посоветовать мне, есть ли что-нибудь уже доступное с открытым исходным кодом или что на самом деле нужно проверить для этого. Все, что я мог видеть, это связь между клиентом и сервером, но я никак не могу отправить данные с одного клиента на сервер другому клиенту или, проще говоря, сервер просто транслирует все сообщения всем своим подключенным клиентам??
Ответ №1:
Похоже, вы пытаетесь добиться одноранговой связи, что невозможно через websockets.
Было бы не очень сложно настроить быстрый сервер широковещательной передачи с помощью Node.js и CoffeeScript, который просто передает все, что он получает от одного сокета, всем остальным подключенным:
net = require 'net'
Array::remove = (e) -> @[t..t] = [] if (t = @indexOf(e)) > -1
class Client
constructor: (@socket) ->
clients = []
server = net.createServer (socket) ->
client = new Client(socket)
clients.push client
socket.addListener 'connect', ->
socket.write "Welcomern"
socket.addListener 'data', (data) ->
for c in clients when c isnt client
c.socket.write data
socket.addListener 'end', ->
clients.remove client
socket.end
.listen 4000
console.log "Chat server is running at localhost:4000"
Комментарии:
1. спасибо, но я получаю эту ошибку при попытке подключиться: ReferenceError: клиенты не определены на сервере.<анонимный> (C:UsersmhaqDesktoppython-socketcode.js:21:5 ) в Server.emit (events.js:67:17) в TCP.onconnection (net_uv.js:737:8) в чем может быть причина??
2. это проблема с отступом: clients = [] должно быть на той же глубине, что и назначение сервера
3. Если я помещаю строку «clients = []» после определения сервера, он запускается, но затем на стороне клиента я получаю: неперехваченная ошибка: INVALID_STATE_ERR: исключение DOM 11. Было бы очень полезно, если бы вы могли подсказать, в чем может быть причина.