0

HTML5 ソケット サーバーを実装して、接続されているすべてのクライアントに受信したものをブロードキャストしようとしましたが、成功しませんでした。

私はソケットを初めて使用します。すでにオープンソースで利用可能なものがある場合、またはそうするために実際にチェックする必要があるものがある場合、誰かが私に提案できますか。私が見ることができるのはクライアントからサーバーへの通信だけですが、あるクライアントからサーバーにデータを送信したり、単純に言えば、サーバーはすべてのメッセージを接続されているすべてのクライアントにブロードキャストする方法はありませんか??

4

1 に答える 1

0

WebSocket では不可能なピアツーピア通信を実現しようとしているようです。

Node.js と CoffeeScript を使用して、1 つのソケットから受信したすべてを接続されている他のすべてのソケットにエコーするだけの高速ブロードキャスト サーバーをセットアップすることは、それほど難しくありません。

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"
于 2011-10-08T01:42:51.863 に答える