Module: Anycable::Server

Defined in:
lib/anycable/server.rb

Overview

Wrapper over GRPC server

Class Attribute Summary collapse

Class Method Summary collapse

Class Attribute Details

.grpc_serverObject (readonly)

Returns the value of attribute grpc_server.



10
11
12
# File 'lib/anycable/server.rb', line 10

def grpc_server
  @grpc_server
end

Class Method Details

.log_grpc!Object

Enable GRPC logging



31
32
33
# File 'lib/anycable/server.rb', line 31

def log_grpc!
  GRPC.define_singleton_method(:logger) { Anycable.logger }
end

.running?Boolean

Returns:

  • (Boolean)


26
27
28
# File 'lib/anycable/server.rb', line 26

def running?
  grpc_server&.running_state == :running
end

.startObject



12
13
14
15
16
17
18
19
# File 'lib/anycable/server.rb', line 12

def start
  log_grpc! if Anycable.config.log_grpc
  @grpc_server ||= build_server

  Anycable.logger.info "RPC server is listening on #{Anycable.config.rpc_host}"
  Anycable.logger.info "Broadcasting Redis channel: #{Anycable.config.redis_channel}"
  grpc_server.run_till_terminated
end

.stopObject



21
22
23
24
# File 'lib/anycable/server.rb', line 21

def stop
  return unless running?
  @grpc_server.stop
end