)).getTime(), i; for (i = -19; i <= 0; i += 1) { data.push({ x: time + i * 1000, y: wsData }); } return data; }()) }] }); }); </script>
<script src="http://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js"></script>
<script src="http://code.highcharts.com/highcharts.js"></script>
3、测试结果:
4、客户端可能会出现超时链接的,可以使用 ReconnectingWebSocket
var ws = new ReconnectingWebSocket("ws://" + wsServerIP + ":" + wsServerPort);
》》》》》》》》》》》》 参数详解
(1)参数一:--staticdir=.
--staticdir=. Allow websocketd to serve count.html as a static file
//允许websocketd作为静态文件提供count.html
这个参数是什么意思来,就是在当前项目指定通知执行的语言脚本文件(count.sh)同名的count.html作为静态文件,直接使用http访问
当前目录
count.sh 文件 (tinywan@tinywan:~/Go/websocket$ cat count.sh)
#!/bin/bash # Count from 1 to 10, pausing for a second between each iteration. for COUNT in $(seq 1 10); do
echo $COUNT sleep 1
done
count.html 文件
<!DOCTYPE html>
<html>
<head>
<title>websocketd count example</title>
<style> #count { font: bold 150px arial; margin: auto; padding: 10px; text-align: center;
}
</style>
</head>
<body>
<div id="count"></div>
<script>
var ws = new WebSocket('ws://192.168.18.180:8080/'); ws.onopen = function() { document.body.style.backgroundColor = '#cfc'; }; ws.onclose = function() { document.body.style.backgroundColor = null; }; ws.onmessage = function(event) { document.getElementById('count').textContent = event.data; }; </script>
</body>
</html>
打开谷歌浏览器,在地址栏输入:http://192.168.18.180:8080/
点击count.html后的效果图
(2)参数二: --devconsole
该--devconsole标志使内置的控制台websocketd与WebSocket端点手动交互。
指向浏览器http://localhost:8080/,您将看到控制台。按复选框连接。
请注意,您不能同时使用--devconsole和--staticdir。开发控制台旨在提供临时用户界面,直到您构建了真实的用户界面。
开始测试:
打开浏览器测试,发送一个空数据是没办法发送的,由于我们没有指定开启那个一个语言脚本文件充当WebSocket 服务器,为我们提供客户端的服务
指定/home/tinywan/Go/websocket 目录下的 count.sh 作为服务文件,继续测试的结果如下所示
Websocket 代理服务器
1、没代理之前访问
var ws = new WebSocket('ws://192.168.18.188:63800'); ws.onopen = function() { console.log('CONNECT'); }; ws.onclose = function() { console.log('DISCONNECT'); }; ws.onmessage = function(event) { console.log('MESSAGE: ' + event.data); };
2、代理之后访问
var ws = new WebSocket('ws://192.168.18.188:8087/chat/'); ws.onopen = function() { console.log('CONNECT'); }; ws.onclose = function() { console.log('DISCONNECT'); }; ws.onmessage = function(event) { console.log('MESSAGE: ' + event.data); };
守护进程运行
nohup websocketd --port=63800 /home/www/bin/system_info_send_all_websocketd.sh >/dev/null 2>&1 &
加载证书
sudo websocketd --port=6500 --ssl --sslcert="/etc/letsencrypt/live/www.tinywan.top/fullchain.pem" -- sslkey="/etc/letsencrypt/live/www.tinywan.top//privkey.pem" /home/www/bin/system_info_send_all_websocketd.s
wss 协议测试
var ws = new WebSocket('wss://www.tinywan.top:6500'); ws.onopen = function() { console.log('CONNECT'); }; ws.onclose = function() { console.log('DISCONNECT'); }; ws.onmessage = function(event) { console.log('MESSAGE: ' + event.data); };
实时监控服务器日志信息