iT邦幫忙

0

關於socket.io的問題

我剛開學習nodejs socket.io建立聊天室聊天
因為在預覽器上,都是client端在互相傳訊息,
我想請問說請問socket.io是否能在終端機
server端insert一筆資料,然後在預覽器上面出現呢?
還是只能用資料庫的方式才能insert呢?
謝謝

2 個回答

2
fillano
iT邦超人 1 級 ‧ 2014-08-14 10:00:36
最佳解答

假設你是要直接由伺服器送訊息給使用者的話:

假設在瀏覽器中收訊息的事件是"chat",那你只要在伺服器中透過事件觸發來傳送:

<pre class="c" name="code">
socket.emit("chat", data);

如果是要傳送訊息給某個room中的使用者:

<pre class="c" name="code">
socket.to("room name").emit("chat", data);

如果是想透過console應用程式傳送訊息,socket.io提供了一個client library,叫做socket.io-client。你在使用socket.io時,瀏覽器端就是使用這個library,另外,也可以從node.js使用這個module,所以你可以用跟瀏覽器端一樣的程式來跟伺服器溝通。

celiait23 iT邦新手 5 級 ‧ 2014-08-14 13:47:20 檢舉

不好意思 我不太懂您解釋的意思(淚)

在伺服器中透過事件來觸發傳送,可是這是不是已經把事件直接伺服器裡面了呢?

譬如伺服器端寫了

<pre class="c" name="code">socket.emit("chat", "Hello , World !")

預覽器端所接收到的就是

<pre class="c" name="code">Hello , World !

如果是mongoDB 他在終端機中輸入

<pre class="c" name="code">db.test1.insert({id: "t123456",name:"Tom"});

然後在預覽器上就可以直接出現這筆資料

我想要問的是說在終端機啟動了伺服器後,
要怎麼在使用終端機伺服器端 insert 資料到 預覽器上呢?

※ 對不起我最近才開始學習程式

謝謝。

fillano iT邦超人 1 級 ‧ 2014-08-14 20:49:25 檢舉

mongoDB跟你說的Socket.io有什麼關係?你可以說明一下嗎?

建議你也說明一下完整的需求,不然我不知道你要做什麼XD

fillano iT邦超人 1 級 ‧ 2014-08-14 20:53:04 檢舉

另外,對伺服器來說,只要有送資料的需要,就呼叫socket.emit("event", data)就可以阿,就看你的伺服器在什麼時候有這樣的需求。這跟是不是瀏覽器端送來的沒有關係。

還有,您說得預覽器是指瀏覽器嗎?

我要發表回答

立即登入回答