LOCKING盒子版
選択できるのは25トピックまでです。 トピックは、先頭が英数字で、英数字とダッシュ('-')を使用した35文字以内のものにしてください。

socket.js 1.3 KiB

3年前
3年前
3年前
3年前
3年前
3年前
3年前
123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. // DEPRECATED
  2. // 现在socket链接改在页面发起
  3. const io = require('ws');
  4. const config = require('./config');
  5. const skUrl = `ws://127.0.0.1:${config.gatewayPort}/websocket/subscriptionTaskSync`;
  6. let socket;
  7. function initialWebsocket(onMessage, onError, onClose) {
  8. socket = new io(skUrl);
  9. socket.on('open', () => {
  10. // socket.emit("hello", "world");
  11. console.log('socket connection');
  12. // socket.send('1');
  13. });
  14. socket.on('message', (message) => {
  15. // console.log('socket message', message);
  16. onMessage(message);
  17. });
  18. socket.on('error', (...args) => {
  19. console.log('socket error:', args);
  20. onError && onError(...args);
  21. });
  22. socket.on('close', (...args) => {
  23. console.log('socket close:', args);
  24. onClose && onClose(...args);
  25. setTimeout(() => initialWebsocket(onMessage, onError, onClose), 5000);
  26. });
  27. }
  28. module.exports.initialWebsocketEvents = function initialWebsocketEvents(
  29. ipcMain,
  30. onMessage,
  31. onError,
  32. onClose,
  33. ) {
  34. initialWebsocket(onMessage, onError, onClose);
  35. ipcMain.handle('socket:send-message', (event, message) => {
  36. if (socket && socket.readyState === io.OPEN) {
  37. console.log('socket send message to gateway:', message);
  38. socket.send(message);
  39. } else {
  40. console.log('socket status not ready:', socket.readyState);
  41. }
  42. });
  43. };