由於項目需要,才開始學習nodejs,如果不對之處,請指教。
目前還沒想到socket服務端如何才能直接發消息給客戶端,只能用以下方法。
思路:共3個文件。觸發客戶端發現有新數據將觸發到服務端,服務端在將消息提供能正在連接的用戶。
如有更好的方法,請說明下。
1.安裝socket.io
npm install socket.io
2.觸發客戶端。(trigger.html)
<script src="http://localhost:2500/socket.io/socket.io.js"></script> <script language="javascript"> var socket = io.connect('http://localhost:2500');//獲取監聽 var abc = function(){ socket.emit('client',{my:'data'});//返回給服務端 } </script> <button onClick='abc()'>點擊</button>//點擊后將提交至服務端。
3.服務端。(server.js)
var io = require('socket.io').listen(2500);//啟動端口2500 //監聽 io.sockets.on('connection',function(socket){ socket.on('client',function(data){//接受到數據 socket.broadcast.emit('server',{hello:'world'});//發送廣播給除觸發用戶的所有人。 console.log(data);//打印到命令行 }); });
4.客戶端。(client.html)接收服務器端傳送過來的消息
<script src="http://localhost:2500/socket.io/socket.io.js"></script> <script language="javascript"> var socket = io.connect('http://localhost:2500');//獲取監聽 socket.on('server',function(data){ alert(data.hello); }); </script>