我一直在尝试实现HTML5套接字服务器来广播它收到的所有连接客户端,但没有成功。
我是套接字的新手,有人pelase建议我,如果有任何已经可用的开源或者真正需要检查的是什么。所有我能看到的是客户端到服务器的通信,但我无法将数据从一个客户端发送到服务器到另一个客户端,或者简单地说,服务器只是将所有消息广播到其所有连接的客户端?
答案 0 :(得分:0)
听起来你正在尝试实现点对点通信,这对于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 "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"