socket.js 808 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. import Vue from "vue"
  2. let host = "ws://"+document.location.host+"/webserialws";
  3. // let host = "ws://192.168.1.x/dashws"; // For Local Testing via npm run serve
  4. const socket = new WebSocket(host);
  5. const emitter = new Vue({
  6. methods:{
  7. send(message){
  8. if (1 === socket.readyState)
  9. socket.send(message)
  10. }
  11. }
  12. });
  13. socket.onopen = function(){
  14. emitter.$emit("connected");
  15. };
  16. socket.onclose = function(){
  17. emitter.$emit("disconnected");
  18. };
  19. socket.onmessage = function(msg){
  20. emitter.$emit("message", msg.data);
  21. };
  22. socket.onerror = function(err){
  23. emitter.$emit("error", err)
  24. };
  25. setInterval(() => {
  26. if(socket.readyState == 0){
  27. emitter.$emit("disconnected");
  28. }else if(socket.readyState === 3){
  29. location.reload();
  30. }
  31. }, 1500);
  32. export default emitter