/
server.go
41 lines (33 loc) · 927 Bytes
/
server.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
package remote
import (
"io/ioutil"
"log"
"net"
"fmt"
"google.golang.org/grpc"
"google.golang.org/grpc/grpclog"
"github.com/hei6775/light-protoactor-go/actor"
)
// Start the remote server
func Start(address string, options ...RemotingOption) error {
grpclog.SetLogger(log.New(ioutil.Discard, "", 0))
lis, err := net.Listen("tcp", address)
if err != nil {
//logger.Error("failed to listen, %s", err)
return fmt.Errorf("failed to listen, %s", err)
}
config := defaultRemoteConfig()
for _, option := range options {
option(config)
}
address = lis.Addr().String()
actor.ProcessRegistry.RegisterAddressResolver(remoteHandler)
actor.ProcessRegistry.Address = address
spawnActivatorActor()
spawnEndpointManager(config)
s := grpc.NewServer(config.serverOptions...)
RegisterRemotingServer(s, &server{})
logger.Info("Starting Proto.Actor server, address=[%v]", address)
go s.Serve(lis)
return nil
}