defaultrpc

package
v1.8.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 21, 2018 License: Apache-2.0 Imports: 19 Imported by: 0

Documentation

Overview

Copyright 2014 mqant Author. All Rights Reserved.

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Copyright 2014 mqant Author. All Rights Reserved.

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Copyright 2014 mqant Author. All Rights Reserved.

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Copyright 2014 mqant Author. All Rights Reserved.

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Copyright 2014 mqant Author. All Rights Reserved.

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Copyright 2014 mqant Author. All Rights Reserved.

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Copyright 2014 mqant Author. All Rights Reserved.

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Copyright 2014 mqant Author. All Rights Reserved.

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Copyright 2014 mqant Author. All Rights Reserved.

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Copyright 2014 mqant Author. All Rights Reserved.

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Copyright 2014 mqant Author. All Rights Reserved.

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Copyright 2014 mqant Author. All Rights Reserved.

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Index

Constants

This section is empty.

Variables

View Source
var (
	TypeServer = 0
	TypeClient = 1
)

Functions

func NewRPCClient

func NewRPCClient(app module.App, serverId string) (mqrpc.RPCClient, error)

func NewRPCServer

func NewRPCServer(app module.App, module module.Module) (mqrpc.RPCServer, error)

Types

type AMQPClient

type AMQPClient struct {
	// contains filtered or unexported fields
}

func NewAMQPClient

func NewAMQPClient(info *conf.Rabbitmq) (client *AMQPClient, err error)

func (*AMQPClient) Call

func (c *AMQPClient) Call(callInfo mqrpc.CallInfo, callback chan rpcpb.ResultInfo) error

* 消息请求

func (*AMQPClient) CallNR

func (c *AMQPClient) CallNR(callInfo mqrpc.CallInfo) error

* 消息请求 不需要回复

func (*AMQPClient) Done

func (c *AMQPClient) Done() (err error)

func (*AMQPClient) Marshal

func (c *AMQPClient) Marshal(rpcInfo *rpcpb.RPCInfo) ([]byte, error)

goroutine safe

func (*AMQPClient) Unmarshal

func (c *AMQPClient) Unmarshal(data []byte) (*rpcpb.RPCInfo, error)

func (*AMQPClient) UnmarshalResult

func (c *AMQPClient) UnmarshalResult(data []byte) (*rpcpb.ResultInfo, error)

type AMQPServer

type AMQPServer struct {
	// contains filtered or unexported fields
}

func NewAMQPServer

func NewAMQPServer(info *conf.Rabbitmq, call_chan chan mqrpc.CallInfo) (*AMQPServer, error)

func (*AMQPServer) Callback

func (s *AMQPServer) Callback(callinfo mqrpc.CallInfo) error

func (*AMQPServer) MarshalResult

func (s *AMQPServer) MarshalResult(resultInfo rpcpb.ResultInfo) ([]byte, error)

goroutine safe

func (*AMQPServer) Shutdown

func (s *AMQPServer) Shutdown() error

* 注销消息队列

func (*AMQPServer) StopConsume

func (s *AMQPServer) StopConsume() error

* 停止接收请求

func (*AMQPServer) Unmarshal

func (s *AMQPServer) Unmarshal(data []byte) (*rpcpb.RPCInfo, error)

type ClinetCallInfo

type ClinetCallInfo struct {
	// contains filtered or unexported fields
}

type Consumer

type Consumer struct {
	// contains filtered or unexported fields
}

func NewConsumer

func NewConsumer(info *conf.Rabbitmq, amqpURI, exchange, exchangeType, ctag string) (*Consumer, error)

func (*Consumer) Cancel

func (c *Consumer) Cancel() error

func (*Consumer) Shutdown

func (c *Consumer) Shutdown() error

type LocalClient

type LocalClient struct {
	// contains filtered or unexported fields
}

func NewLocalClient

func NewLocalClient(server mqrpc.LocalServer) (*LocalClient, error)

func (*LocalClient) Call

func (c *LocalClient) Call(callInfo mqrpc.CallInfo, callback chan rpcpb.ResultInfo) (err error)

* 消息请求

func (*LocalClient) CallNR

func (c *LocalClient) CallNR(callInfo mqrpc.CallInfo) (err error)

* 消息请求 不需要回复

func (*LocalClient) Done

func (c *LocalClient) Done() error

type LocalServer

type LocalServer struct {
	// contains filtered or unexported fields
}

func NewLocalServer

func NewLocalServer(call_chan chan mqrpc.CallInfo) (*LocalServer, error)

func (*LocalServer) Callback

func (s *LocalServer) Callback(callinfo mqrpc.CallInfo) error

*

func (*LocalServer) IsClose

func (s *LocalServer) IsClose() bool

* 停止接收请求

func (*LocalServer) SafeCallback

func (s *LocalServer) SafeCallback(local_chan chan rpcpb.ResultInfo, callInfo rpcpb.ResultInfo) (closed bool)

func (*LocalServer) SafeSend

func (s *LocalServer) SafeSend(local_chan chan mqrpc.CallInfo, callInfo mqrpc.CallInfo) (closed bool)

func (*LocalServer) Shutdown

func (s *LocalServer) Shutdown() (err error)

* 注销消息队列

func (*LocalServer) StopConsume

func (s *LocalServer) StopConsume() error

* 停止接收请求

func (*LocalServer) Write

func (s *LocalServer) Write(callInfo mqrpc.CallInfo) error

* 停止接收请求

type RPCClient

type RPCClient struct {
	// contains filtered or unexported fields
}

func (*RPCClient) Call

func (c *RPCClient) Call(_func string, params ...interface{}) (interface{}, string)

* 消息请求 需要回复

func (*RPCClient) CallArgs

func (c *RPCClient) CallArgs(_func string, ArgsType []string, args [][]byte) (interface{}, string)

func (*RPCClient) CallNR

func (c *RPCClient) CallNR(_func string, params ...interface{}) (err error)

* 消息请求 不需要回复

func (*RPCClient) CallNRArgs

func (c *RPCClient) CallNRArgs(_func string, ArgsType []string, args [][]byte) (err error)

func (*RPCClient) Done

func (c *RPCClient) Done() (err error)

func (*RPCClient) NewLocalClient

func (c *RPCClient) NewLocalClient(server mqrpc.RPCServer) (err error)

func (*RPCClient) NewRabbitmqClient

func (c *RPCClient) NewRabbitmqClient(info *conf.Rabbitmq) (err error)

func (*RPCClient) NewRedisClient

func (c *RPCClient) NewRedisClient(info *conf.Redis) (err error)

func (*RPCClient) NewUdpClient added in v1.8.0

func (c *RPCClient) NewUdpClient(info *conf.UDP) (err error)

type RPCServer

type RPCServer struct {
	// contains filtered or unexported fields
}

func (*RPCServer) Done

func (s *RPCServer) Done() (err error)

func (*RPCServer) Finish

func (this *RPCServer) Finish()

func (*RPCServer) GetExecuting

func (s *RPCServer) GetExecuting() int64

* 获取当前正在执行的goroutine 数量

func (*RPCServer) GetLocalServer

func (s *RPCServer) GetLocalServer() mqrpc.LocalServer

func (*RPCServer) NewRabbitmqRPCServer

func (s *RPCServer) NewRabbitmqRPCServer(info *conf.Rabbitmq) (err error)

* 创建一个支持远程RPC的服务

func (*RPCServer) NewRedisRPCServer

func (s *RPCServer) NewRedisRPCServer(info *conf.Redis) (err error)

* 创建一个支持远程Redis RPC的服务

func (*RPCServer) NewUdpRPCServer added in v1.8.0

func (s *RPCServer) NewUdpRPCServer(info *conf.UDP) (err error)

* 创建一个支持远程UDP RPC的服务

func (*RPCServer) Register

func (s *RPCServer) Register(id string, f interface{})

you must call the function before calling Open and Go

func (*RPCServer) RegisterGO

func (s *RPCServer) RegisterGO(id string, f interface{})

you must call the function before calling Open and Go

func (*RPCServer) SetGoroutineControl

func (s *RPCServer) SetGoroutineControl(control mqrpc.GoroutineControl)

func (*RPCServer) SetListener

func (s *RPCServer) SetListener(listener mqrpc.RPCListener)

func (*RPCServer) Wait

func (this *RPCServer) Wait() error

type RabbitAgent

type RabbitAgent struct {
	// contains filtered or unexported fields
}

func NewRabbitAgent

func NewRabbitAgent(info *conf.Rabbitmq, serverType int) (*RabbitAgent, error)

func (*RabbitAgent) CallbackQueue

func (this *RabbitAgent) CallbackQueue() (string, error)

* 创建回调 提供给 rpc client调用

func (*RabbitAgent) ClientPublish

func (this *RabbitAgent) ClientPublish(body []byte) error

* rpc client写数据

func (*RabbitAgent) Closed

func (this *RabbitAgent) Closed() bool

func (*RabbitAgent) ExchangeDeclare

func (this *RabbitAgent) ExchangeDeclare() error

* 声明一个交换器,提供给rpc server端调用

func (*RabbitAgent) Queue

func (this *RabbitAgent) Queue() error

* 创建回调 提供给 rpc server调用

func (*RabbitAgent) RChannel

func (this *RabbitAgent) RChannel() (*amqp.Channel, error)

* 获取读通道

func (*RabbitAgent) RConnect

func (this *RabbitAgent) RConnect() error

* 创建一个读连接

func (*RabbitAgent) ReadMsg

func (this *RabbitAgent) ReadMsg() chan amqp.Delivery

func (*RabbitAgent) ServerPublish

func (this *RabbitAgent) ServerPublish(queueName string, body []byte) error

* rpc server写数据

func (*RabbitAgent) Shutdown

func (this *RabbitAgent) Shutdown() error

* 停止服务

func (*RabbitAgent) WChannel

func (this *RabbitAgent) WChannel() (*amqp.Channel, error)

* 获取写通道

func (*RabbitAgent) WConnect

func (this *RabbitAgent) WConnect() error

* 创建一个写连接

type RabbitMQInfo

type RabbitMQInfo struct {
	// contains filtered or unexported fields
}

type RedisClient

type RedisClient struct {
	// contains filtered or unexported fields
}

func NewRedisClient

func NewRedisClient(info *conf.Redis) (client *RedisClient, err error)

func (*RedisClient) Call

func (c *RedisClient) Call(callInfo mqrpc.CallInfo, callback chan rpcpb.ResultInfo) error

* 消息请求

func (*RedisClient) CallNR

func (c *RedisClient) CallNR(callInfo mqrpc.CallInfo) error

* 消息请求 不需要回复

func (*RedisClient) Done

func (c *RedisClient) Done() (err error)

func (*RedisClient) Finish

func (this *RedisClient) Finish()

func (*RedisClient) Marshal

func (c *RedisClient) Marshal(rpcInfo *rpcpb.RPCInfo) ([]byte, error)

goroutine safe

func (*RedisClient) Unmarshal

func (c *RedisClient) Unmarshal(data []byte) (*rpcpb.RPCInfo, error)

func (*RedisClient) UnmarshalResult

func (c *RedisClient) UnmarshalResult(data []byte) (*rpcpb.ResultInfo, error)

func (*RedisClient) Wait

func (this *RedisClient) Wait() error

type RedisServer

type RedisServer struct {
	// contains filtered or unexported fields
}

func NewRedisServer

func NewRedisServer(info *conf.Redis, call_chan chan mqrpc.CallInfo) (*RedisServer, error)

func (*RedisServer) Callback

func (s *RedisServer) Callback(callinfo mqrpc.CallInfo) error

func (*RedisServer) MarshalResult

func (s *RedisServer) MarshalResult(resultInfo rpcpb.ResultInfo) ([]byte, error)

goroutine safe

func (*RedisServer) Shutdown

func (s *RedisServer) Shutdown() error

* 注销消息队列

func (*RedisServer) StopConsume

func (s *RedisServer) StopConsume() error

* 停止接收请求

func (*RedisServer) Unmarshal

func (s *RedisServer) Unmarshal(data []byte) (*rpcpb.RPCInfo, error)

type UDPClient added in v1.8.0

type UDPClient struct {
	// contains filtered or unexported fields
}

func NewUDPClient added in v1.8.0

func NewUDPClient(info *conf.UDP) (*UDPClient, error)

func (*UDPClient) Call added in v1.8.0

func (this *UDPClient) Call(callInfo mqrpc.CallInfo, callback chan rpcpb.ResultInfo) (err error)

* 消息请求

func (*UDPClient) CallNR added in v1.8.0

func (this *UDPClient) CallNR(callInfo mqrpc.CallInfo) (err error)

* 消息请求 不需要回复

func (*UDPClient) Done added in v1.8.0

func (c *UDPClient) Done() error

func (*UDPClient) GetConn added in v1.8.0

func (this *UDPClient) GetConn() (*net.UDPConn, error)

func (*UDPClient) Marshal added in v1.8.0

func (c *UDPClient) Marshal(rpcInfo *rpcpb.RPCInfo) ([]byte, error)

goroutine safe

func (*UDPClient) Unmarshal added in v1.8.0

func (c *UDPClient) Unmarshal(data []byte) (*rpcpb.RPCInfo, error)

func (*UDPClient) UnmarshalResult added in v1.8.0

func (c *UDPClient) UnmarshalResult(data []byte) (*rpcpb.ResultInfo, error)

type UDPServer added in v1.8.0

type UDPServer struct {
	// contains filtered or unexported fields
}

func NewUdpServer added in v1.8.0

func NewUdpServer(info *conf.UDP, call_chan chan mqrpc.CallInfo) (*UDPServer, error)

func (*UDPServer) Callback added in v1.8.0

func (s *UDPServer) Callback(callinfo mqrpc.CallInfo) error

func (*UDPServer) MarshalResult added in v1.8.0

func (s *UDPServer) MarshalResult(resultInfo rpcpb.ResultInfo) ([]byte, error)

goroutine safe

func (*UDPServer) Shutdown added in v1.8.0

func (this *UDPServer) Shutdown() error

* 注销消息队列

func (*UDPServer) StopConsume added in v1.8.0

func (this *UDPServer) StopConsume() error

* 停止接收请求

func (*UDPServer) Unmarshal added in v1.8.0

func (s *UDPServer) Unmarshal(data []byte) (*rpcpb.RPCInfo, error)

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL