Сервер HTML WebSocket для связи между разными браузерами

Я пытался внедрить сервер сокетов HTML5 для трансляции всего, что он получает, всем подключенным клиентам, но безуспешно.

Я новичок в сокетах, может кто-нибудь подсказать мне, есть ли что-то уже доступное с открытым исходным кодом или что на самом деле нужно проверить для этого. Все, что я мог видеть, это связь между клиентом и сервером, но я не могу отправлять данные с одного клиента на сервер другому клиенту или, проще говоря, сервер просто транслирует все сообщения всем своим подключенным клиентам ??


person Johnydep    schedule 08.10.2011    source источник


Ответы (1)


Похоже, вы пытаетесь установить одноранговую связь, что невозможно через веб-сокеты.

Было бы несложно настроить быстрый широковещательный сервер с помощью 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 "Welcome\r\n"

  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"
person Mike    schedule 08.10.2011
comment
спасибо, но я получаю эту ошибку, когда пытаюсь подключиться: ReferenceError: клиенты не определены на сервере.‹anonymous› (C:\Users\mhaq\Desktop\python-socket\code.js:21:5) на сервере. выброс (events.js:67:17) в TCP.onconnection(net_uv.js:737:8) в чем может быть причина?? - person Johnydep; 08.10.2011
comment
это проблема отступа: клиенты = [] должны быть на той же глубине, что и назначение сервера - person Mike; 09.10.2011
comment
Если я поставлю строку client = [] после задания сервера, он запустится, но затем на стороне клиента я получаю: Uncaught Error: INVALID_STATE_ERR: DOM Exception 11. Было бы очень полезно, если бы вы могли предположить, в чем может быть причина. - person Johnydep; 10.10.2011