問題在於有多個客戶端的時候如何處理?比如多個客戶端都連了8091,然後給8090的資料處理後發給哪個客戶端?
這裡假設你需要的是廣播;假設資料都在一個包內傳完,不考慮多個數據包
clients = { s1: {}, s2: {} }
onConnect1 = (socket)->
id = RANDOM_ID()
clients.s1[id] socket
#有人連8090
socket.on "data", (buffer)->
#處理資料
result = YOUR_LOGIC buffer
#處理完以後發廣播
Object.keys(clients.s2).forEach (k)->
clients.s2[k].write result
#通訊結束
socket.on "end", ()->
delete clients.s1[id]
onConnect2 = (socket)->
#差不多抄一遍,如果來回邏輯就是一樣的話可以複用一下
s1 = net.createServer onConnect1
s2 = net.createServer onConnect2
s1.listen 8090
s2.listen 8091
問題在於有多個客戶端的時候如何處理?比如多個客戶端都連了8091,然後給8090的資料處理後發給哪個客戶端?
這裡假設你需要的是廣播;假設資料都在一個包內傳完,不考慮多個數據包
clients = { s1: {}, s2: {} }
onConnect1 = (socket)->
id = RANDOM_ID()
clients.s1[id] socket
#有人連8090
socket.on "data", (buffer)->
#處理資料
result = YOUR_LOGIC buffer
#處理完以後發廣播
Object.keys(clients.s2).forEach (k)->
clients.s2[k].write result
#通訊結束
socket.on "end", ()->
delete clients.s1[id]
onConnect2 = (socket)->
#差不多抄一遍,如果來回邏輯就是一樣的話可以複用一下
s1 = net.createServer onConnect1
s2 = net.createServer onConnect2
s1.listen 8090
s2.listen 8091