0
我一直在试图实现HTML5套接字服务器来广播它收到的所有连接的客户端,但没有成功。HTML WebSocket服务器,用于不同浏览器之间的通信
我是新来的套接字,如果有什么已经存在的开源或有什么东西需要检查。我只能看到客户端到服务器的通信,但是我无法将数据从一个客户端发送到另一个客户端,或者简单地说,服务器只是将所有消息广播到所有连接的客户端?
我一直在试图实现HTML5套接字服务器来广播它收到的所有连接的客户端,但没有成功。HTML WebSocket服务器,用于不同浏览器之间的通信
我是新来的套接字,如果有什么已经存在的开源或有什么东西需要检查。我只能看到客户端到服务器的通信,但是我无法将数据从一个客户端发送到另一个客户端,或者简单地说,服务器只是将所有消息广播到所有连接的客户端?
这听起来像你试图实现点对点通信,这是不可能通过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"
感谢,但我当我尝试连接时出现此错误: ReferenceError:客户端未在服务器上定义为 。在TCP.onconnection(net_uv.js:737:8)处Server.emit(events.js:67:17) (C:\ Users \ mhaq \ Desktop \ python-socket \ code.js:21:5) ) 可能是什么原因? – Johnydep
这是一个缩进问题:clients = []应该在与服务器分配相同的深度 – Mike
如果我在服务器assingment后放行“clients = []”,它会运行,但是在客户端我得到:Uncaught错误:INVALID_STATE_ERR :DOM异常11.如果你能提出可能的原因,这将是非常有帮助的。 – Johnydep