1. 程式人生 > >【轉】socket.io broadcast的幾種用法之初試

【轉】socket.io broadcast的幾種用法之初試

Rooms:

允許相連線的client端組成一個集合,這樣可以將時間傳送到相連結clients的子集,有一個簡單的方法管理。

socket.join('room')

socket.leave("room")

兩種方法將時間傳送到room中:socket.broadcast.to('room')和io.sockets.in('room')

socket.broadcast.to('room').emit('event_name',data)//emit to 'room' except this socket/*傳送訊息給room所有的socket client端,除了傳送者自己*/

socket.broadcast.emit('event_name',data)//emit to all sockets except this one/*傳送資訊給所有連線到server的client端*/

io.sockets.in('room').emit('event_name',data)//emit to all clients in a particular room/*傳送訊息給room所有的socket client端*/

io.sockets.emit('event_name',data) //emit an event to all clients/*傳送資訊給所有連線到server的client端*/

io.of('namespace').in('room').emit();// emit an event to all clients in a namespace of a particular room

問題:內容廣播僅僅在本地機器有效,而區域網其他機器則無效的原因?

client端中:io.connect('http://localhost');

應改為server端的ip地址。

參考:http://stackoverflow.com/questions/6873607/socket-io-rooms-difference-between-broadcast-to-and-sockets-in