{"id":48391,"library":"lime-transport-websocket","title":"LIME WebSocket Transport","description":"WebSocket transport implementation for the LIME (Lightweight Messaging Protocol) protocol. Version 2.0.3 enables bidirectional communication over WebSockets for LIME-based applications, commonly used in instant messaging and IoT. The library provides a WebSocketTransport class that implements the LIME transport contract, supporting connection management, message serialization, and automatic reconnection. It is part of the LIME protocol ecosystem, typically used alongside lime-client and lime-csharp. Released under MIT license.","status":"active","version":"2.0.3","language":"javascript","source_language":"en","source_url":"https://github.com/takenet/lime-transport-websocket","tags":["javascript","lime","websocket","ws","http","transport"],"install":[{"cmd":"npm install lime-transport-websocket","lang":"bash","label":"npm"},{"cmd":"yarn add lime-transport-websocket","lang":"bash","label":"yarn"},{"cmd":"pnpm add lime-transport-websocket","lang":"bash","label":"pnpm"}],"dependencies":[{"reason":"WebSocket client for Node.js environments","package":"ws","optional":true},{"reason":"Base transport interface and types","package":"lime-transport","optional":false}],"imports":[{"note":"ESM-only since v2; CJS require may fail.","wrong":"const WebSocketTransport = require('lime-transport-websocket')","symbol":"WebSocketTransport","correct":"import { WebSocketTransport } from 'lime-transport-websocket'"},{"note":"Default export available since v1.","wrong":"import WebSocketTransport from 'lime-transport-websocket/src/transport'","symbol":"WebSocketTransport","correct":"import WebSocketTransport from 'lime-transport-websocket'"},{"note":"Type-only import for TypeScript users.","wrong":"","symbol":"WebSocketTransportOptions","correct":"import type { WebSocketTransportOptions } from 'lime-transport-websocket'"}],"quickstart":{"code":"import { WebSocketTransport } from 'lime-transport-websocket';\n\nconst transport = new WebSocketTransport({\n  url: 'wss://example.com/lime',\n  pingInterval: 30000\n});\n\ntransport.on('connected', () => {\n  console.log('Connected');\n  transport.send({\n    id: '1',\n    from: 'client@domain',\n    to: 'server@domain',\n    type: 'text/plain',\n    content: 'Hello'\n  });\n});\n\ntransport.on('message', (message) => {\n  console.log('Received:', message);\n});\n\ntransport.connect().catch(console.error);","lang":"typescript","description":"Shows creating a WebSocketTransport, connecting, sending a LIME message, and handling events."},"warnings":[{"fix":"Use `import { WebSocketTransport } from 'lime-transport-websocket'` instead of default import.","message":"In v2.0.0, default export changed from WebSocketTransport to named export. Requires destructured import.","severity":"breaking","affected_versions":">=2.0.0 <3.0.0"},{"fix":"Run `npm install ws` if using Node.js.","message":"The 'ws' package is no longer bundled; you must install it separately in Node.js environments.","severity":"deprecated","affected_versions":">=2.0.0"},{"fix":"Pass `wsConstructor: require('ws')` in options.","message":"In environments without native WebSocket (Node.js < 18), you must provide a WebSocket implementation via options.wsConstructor.","severity":"gotcha","affected_versions":">=1.0.0"},{"fix":"Listen for 'disconnected' event and call connect() again.","message":"The transport no longer automatically reconnects; you must implement reconnection logic.","severity":"breaking","affected_versions":">=2.0.0"},{"fix":"Ensure messages have 'id', 'from', 'to', 'type', and 'content' fields.","message":"Messages must conform to LIME envelope format; otherwise the transport may reject them silently.","severity":"gotcha","affected_versions":">=1.0.0"},{"fix":"Switch to `import` syntax or use dynamic import.","message":"Support for CommonJS (require) is deprecated in v2. Use ESM imports only.","severity":"deprecated","affected_versions":">=2.0.0"}],"env_vars":null,"search_vec":"'2.0.3':15 'alongsid':63 'applic':25 'automat':51 'base':24 'bidirect':17 'class':38 'client':66 'common':26 'communic':18 'connect':46 'contract':44 'csharp':70 'ecosystem':60 'enabl':16 'http':79 'implement':6,40 'instant':29 'iot':32 'javascript':75 'librari':34 'licens':74 'lightweight':10 'lime':1,9,23,42,58,65,69,76 'lime-bas':22 'lime-cli':64 'lime-csharp':68 'manag':47 'messag':11,30,48 'mit':73 'part':55 'protocol':12,13,59 'provid':35 'reconnect':52 'releas':71 'serial':49 'support':45 'transport':3,5,43,80 'typic':61 'use':27,62 'version':14 'websocket':2,4,20,77 'websockettransport':37 'ws':78","created_at":"2026-06-07T16:56:24.625818+00:00","updated_at":"2026-06-07T16:56:24.625818+00:00","problems":[{"fix":"Change to `import { WebSocketTransport } from 'lime-transport-websocket'`.","cause":"Using default import in v2 which requires named import.","error":"TypeError: WebSocketTransport is not a constructor"},{"fix":"Run `npm install ws` in your project.","cause":"Missing 'ws' package for Node.js WebSocket implementation.","error":"Error: Module not found: 'ws'"},{"fix":"Pass `wsConstructor: require('ws')` in options or upgrade Node.js.","cause":"No global WebSocket (e.g., Node.js <18) and ws constructor not provided.","error":"Error: Not supported (please set WebSocket constructor)"},{"fix":"Ensure message object includes 'id', 'from', 'to', 'type', and 'content'.","cause":"Sending malformed LIME envelope without required fields.","error":"TypeError: message.id is undefined"}],"ecosystem":"npm","meta_description":null,"install_score":null,"quickstart_score":null,"quickstart_tag":null,"pypi_latest":null,"cli_name":null,"cli_version":null,"type":"library","homepage":"https://github.com/takenet/lime-transport-websocket#readme","github":"https://github.com/takenet/lime-transport-websocket","docs":null,"changelog":null,"pypi":null,"npm":"lime-transport-websocket","openapi_spec":null,"status_page":null,"smithery":null,"categories":["messaging"],"base_url":null,"auth_type":null,"provenance":{"verified_status":null,"verified_at":null,"last_verified":"2026-06-07","next_check":"2026-09-05","install_tag":null}}