由于项目需要,才开始学习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>