我一直在尝试实现 HTML5 套接字服务器,以将它接收到的所有内容广播给所有连接的客户端,但没有成功。
我是套接字的新手,如果有任何可用的开源或真正需要检查的东西,有人可以建议我。我只能看到客户端到服务器的通信,但我无法将数据从一个客户端发送到服务器到另一个客户端,或者简单地说,服务器只是将所有消息广播到所有连接的客户端?
我一直在尝试实现 HTML5 套接字服务器,以将它接收到的所有内容广播给所有连接的客户端,但没有成功。
我是套接字的新手,如果有任何可用的开源或真正需要检查的东西,有人可以建议我。我只能看到客户端到服务器的通信,但我无法将数据从一个客户端发送到服务器到另一个客户端,或者简单地说,服务器只是将所有消息广播到所有连接的客户端?
听起来您正在尝试实现对等通信,而这在 websocket 上是不可能的。
使用 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"