ws.html 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. <!DOCTYPE HTML>
  2. <html>
  3. <head>
  4. <meta charset="utf-8">
  5. <title>测试websocket</title>
  6. <script type="text/javascript">
  7. var imgData = null;
  8. function WebSocketTest() {
  9. if ("WebSocket" in window) {
  10. alert("您的浏览器支持 WebSocket!");
  11. // 打开一个 web socket
  12. var ws = new WebSocket("ws://localhost:3000/live/img/33");
  13. ws.onopen = function() {
  14. // Web Socket 已连接上,使用 send() 方法发送数据
  15. // ws.send("发送数据");
  16. };
  17. ws.onmessage = function(evt) {
  18. var received_msg = evt.data;
  19. var livedata = JSON.parse(received_msg);
  20. var data = livedata.rgbData;
  21. if(!imgData){
  22. imgData = ctx.createImageData(livedata.width, livedata.height);
  23. }
  24. for (var i = 0; i < data.length; i ++) {
  25. // imgData.data[i + 0] = data[i];
  26. // imgData.data[i + 1] = data[i + 1];
  27. // imgData.data[i + 2] = data[i + 2];
  28. // imgData.data[i + 3] = data[i + 3];
  29. imgData.data[i] = data[i];
  30. }
  31. ctx.putImageData(imgData, 0, 0);
  32. };
  33. ws.onclose = function() {
  34. // 关闭 websocket
  35. // alert("连接已关闭...");
  36. };
  37. } else {
  38. // 浏览器不支持 WebSocket
  39. alert("您的浏览器不支持 WebSocket!");
  40. }
  41. }
  42. var ctx = null;
  43. window.onload = function() {
  44. var ccc = document.getElementById("mycanvas");
  45. ctx = ccc.getContext("2d");
  46. // ctx.putImageData(imgData, 0, 0);
  47. }
  48. // int转rgb
  49. function converArgbToRgb(argb) {
  50. var r = (argb & 0xff0000) >> 16;
  51. var g = (argb & 0xff00) >> 8;
  52. var b = (argb & 0xff);
  53. imgData.data.push(r);
  54. imgData.data.push(g);
  55. imgData.data.push(b);
  56. imgData.data.push(255);
  57. }
  58. // rgb转int
  59. function converRgbToArgb(r, g, b) {
  60. var color = ((0xFF << 24) | (r << 16) | (g << 8) | b);
  61. return color;
  62. }
  63. </script>
  64. </head>
  65. <body>
  66. <div id="sse">
  67. <a href="javascript:WebSocketTest()">运行 WebSocket</a>
  68. </div>
  69. <canvas id="mycanvas" width="500" height="500" style="border: solid 1px #42B983;"></canvas>
  70. </body>
  71. </html>