Sha256: 391b1a18f2d0a0ea18ad20c889b6acc97c7909c1dd0d6c5b1490b3b6dcd06975

Contents?: true

Size: 817 Bytes

Versions: 2

Compression:

Stored size: 817 Bytes

Contents

# frozen_string_literal: true

module LiteCable
  # Rack middleware to hijack sockets.
  #
  # Uses thread-per-connection model (thus recommended only for development and test usage).
  #
  # Inspired by https://github.com/ngauthier/tubesock/blob/master/lib/tubesock.rb
  module Server
    require "websocket"
    require "lite_cable/server/subscribers_map"
    require "lite_cable/server/client_socket"
    require "lite_cable/server/heart_beat"
    require "lite_cable/server/middleware"

    class << self
      attr_accessor :subscribers_map

      # Broadcast encoded message to the stream
      def broadcast(stream, message, coder: nil)
        coder ||= LiteCable.config.coder
        subscribers_map.broadcast stream, message, coder
      end
    end

    self.subscribers_map = SubscribersMap.new
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
litecable-0.6.0 lib/lite_cable/server.rb
litecable-0.5.0 lib/lite_cable/server.rb