Documentation
¶
Index ¶
- Constants
- Variables
- func IPCChannelChooseInit()
- func InternalIPCNameCheck(name string) bool
- type ArgumentDataItem
- func (m *ArgumentDataItem) Data() []byte
- func (m *ArgumentDataItem) GetBool() bool
- func (m *ArgumentDataItem) GetDouble() float64
- func (m *ArgumentDataItem) GetFloat32() float32
- func (m *ArgumentDataItem) GetFloat64() float64
- func (m *ArgumentDataItem) GetInt() int
- func (m *ArgumentDataItem) GetInt8() int8
- func (m *ArgumentDataItem) GetInt16() int16
- func (m *ArgumentDataItem) GetInt32() int32
- func (m *ArgumentDataItem) GetInt64() int64
- func (m *ArgumentDataItem) GetNumber() int32
- func (m *ArgumentDataItem) GetString() string
- func (m *ArgumentDataItem) IsBoolean() bool
- func (m *ArgumentDataItem) IsFloat32() bool
- func (m *ArgumentDataItem) IsFloat64() bool
- func (m *ArgumentDataItem) IsFloatAuto() bool
- func (m *ArgumentDataItem) IsInt() bool
- func (m *ArgumentDataItem) IsInt8() bool
- func (m *ArgumentDataItem) IsInt16() bool
- func (m *ArgumentDataItem) IsInt32() bool
- func (m *ArgumentDataItem) IsInt64() bool
- func (m *ArgumentDataItem) IsIntAuto() bool
- func (m *ArgumentDataItem) IsString() bool
- func (m *ArgumentDataItem) VType() int8
- func (m *ArgumentDataItem) VTypeToJS() V8_JS_VALUE_TYPE
- type BuildBytes
- type CefProcessMessagePtr
- type EmitCallbackCollection
- type EmitSyncCollection
- type EventCallback
- type IArgumentList
- type IBrowseEventEmit
- type ICefProcessMessage
- type IEventEmit
- type IEventMessage
- type IEventOn
- type IIPCContext
- type IPCCallback
- type IPCContext
- func (m *IPCContext) Arguments() IArgumentList
- func (m *IPCContext) BrowserId() int32
- func (m *IPCContext) ChannelId() int64
- func (m *IPCContext) Connect() net.Conn
- func (m *IPCContext) EventId() int32
- func (m *IPCContext) Free()
- func (m *IPCContext) Message() *IPCEventMessage
- func (m *IPCContext) Response(data []byte)
- func (m *IPCContext) Result() *IPCContextResult
- type IPCContextResult
- type IPCEventMessage
Constants ¶
View Source
const ( Ln_IPC_GoEmitJS = "IPCGoEmitJS" //Go执行Js on监听 Ln_GET_BIND_FIELD_VALUE = "internal_GET_BIND_FIELD_VALUE" //browse进程监听获取字段值 Ln_SET_BIND_FIELD_VALUE = "internal_SET_BIND_FIELD_VALUE" //browse进程监听设置字段值 Ln_EXECUTE_BIND_FUNC = "internal_EXECUTE_BIND_FUNC" //browse进程监听执行绑定函数 Ln_onConnectEvent = "connect" )
Variables ¶
View Source
var ( MemoryAddress = "energy.sock" //GO IPC 通道选择条件 // //默认值=IsDarwin() true:使用net socket, false:使用unix socket UseNetIPCChannel = true //主进程Browser启动 IPC,Render进程创建 IPC IPC = &ipcChannel{ browser: &browserChannel{ msgID: &MsgID{}, cliID: &CliID{}, events: &event{event: make(map[string]EventCallback)}, channel: sync.Map{}, emitSync: make(map[string]*EmitSyncCollection), mutex: sync.Mutex{}, emitCallback: &EmitCallbackCollection{EmitCollection: sync.Map{}}, browseOnEvents: make([]func(browseProcess IEventOn), 0), browseEmitCallback: make([]func(renderProcess IEventEmit), 0)}, render: &renderChannel{ msgID: &MsgID{}, mutex: sync.Mutex{}, emitCallback: &EmitCallbackCollection{EmitCollection: sync.Map{}}, emitSync: make(map[string]*EmitSyncCollection), events: &event{event: make(map[string]EventCallback)}, renderOnEvents: make([]func(browseProcess IEventOn), 0), renderEmitCallback: make([]func(renderProcess IEventEmit), 0), }, } )
Functions ¶
func IPCChannelChooseInit ¶
func IPCChannelChooseInit()
func InternalIPCNameCheck ¶
Types ¶
type ArgumentDataItem ¶
type ArgumentDataItem struct {
// contains filtered or unexported fields
}
func (*ArgumentDataItem) Data ¶
func (m *ArgumentDataItem) Data() []byte
func (*ArgumentDataItem) GetBool ¶
func (m *ArgumentDataItem) GetBool() bool
func (*ArgumentDataItem) GetDouble ¶
func (m *ArgumentDataItem) GetDouble() float64
func (*ArgumentDataItem) GetFloat32 ¶
func (m *ArgumentDataItem) GetFloat32() float32
func (*ArgumentDataItem) GetFloat64 ¶
func (m *ArgumentDataItem) GetFloat64() float64
func (*ArgumentDataItem) GetInt ¶
func (m *ArgumentDataItem) GetInt() int
func (*ArgumentDataItem) GetInt8 ¶
func (m *ArgumentDataItem) GetInt8() int8
func (*ArgumentDataItem) GetInt16 ¶
func (m *ArgumentDataItem) GetInt16() int16
func (*ArgumentDataItem) GetInt32 ¶
func (m *ArgumentDataItem) GetInt32() int32
func (*ArgumentDataItem) GetInt64 ¶
func (m *ArgumentDataItem) GetInt64() int64
func (*ArgumentDataItem) GetNumber ¶
func (m *ArgumentDataItem) GetNumber() int32
func (*ArgumentDataItem) GetString ¶
func (m *ArgumentDataItem) GetString() string
func (*ArgumentDataItem) IsBoolean ¶
func (m *ArgumentDataItem) IsBoolean() bool
func (*ArgumentDataItem) IsFloat32 ¶
func (m *ArgumentDataItem) IsFloat32() bool
func (*ArgumentDataItem) IsFloat64 ¶
func (m *ArgumentDataItem) IsFloat64() bool
func (*ArgumentDataItem) IsFloatAuto ¶
func (m *ArgumentDataItem) IsFloatAuto() bool
func (*ArgumentDataItem) IsInt ¶
func (m *ArgumentDataItem) IsInt() bool
func (*ArgumentDataItem) IsInt8 ¶
func (m *ArgumentDataItem) IsInt8() bool
func (*ArgumentDataItem) IsInt16 ¶
func (m *ArgumentDataItem) IsInt16() bool
func (*ArgumentDataItem) IsInt32 ¶
func (m *ArgumentDataItem) IsInt32() bool
func (*ArgumentDataItem) IsInt64 ¶
func (m *ArgumentDataItem) IsInt64() bool
func (*ArgumentDataItem) IsIntAuto ¶
func (m *ArgumentDataItem) IsIntAuto() bool
func (*ArgumentDataItem) IsString ¶
func (m *ArgumentDataItem) IsString() bool
func (*ArgumentDataItem) VType ¶
func (m *ArgumentDataItem) VType() int8
func (*ArgumentDataItem) VTypeToJS ¶
func (m *ArgumentDataItem) VTypeToJS() V8_JS_VALUE_TYPE
type BuildBytes ¶
type BuildBytes struct {
// contains filtered or unexported fields
}
func (*BuildBytes) Bytes ¶
func (m *BuildBytes) Bytes() []byte
func (*BuildBytes) Set ¶
func (m *BuildBytes) Set(data interface{})
type CefProcessMessagePtr ¶
type EmitCallbackCollection ¶
触发事件回调函数集合
type EmitSyncCollection ¶
触发同步事件集合
type EventCallback ¶
type EventCallback func(context IIPCContext)
type IArgumentList ¶
type IArgumentList interface {
Clear()
Size() int
Package() []byte
UnPackageBytePtr(bytePtr uintptr, byteLength int32)
UnPackage(dataByte []byte)
ToReflectValue() []reflect.Value
ReflectValueConvert(ref []reflect.Value)
SetArguments(index int, argument IArgumentList)
SetString(index int, v string, isDStr ...bool) //设置字符串参数 isDStr: 在传递参数到JavaScript需要设置为true
GetString(index int) string
SetIntAuto(index int, v interface{}, gov GO_VALUE_TYPE)
SetInt(index int, v int)
SetInt8(index int, v int8)
SetData(index int, vType int8, data []byte)
SetInt16(index int, v int16)
SetInt32(index int, v int32)
SetInt64(index int, v int64)
GetInt(index int) int
GetInt8(index int) int8
GetInt16(index int) int16
GetInt32(index int) int32
GetBytes(index int) []byte
GetData(index int) *ArgumentDataItem
GetInt64(index int) int64
SetFloatAuto(index int, v interface{}, gov GO_VALUE_TYPE)
SetFloat32(index int, v float32)
SetFloat64(index int, v float64)
GetFloat32(index int) float32
GetFloat64(index int) float64
SetBool(index int, v bool)
GetBool(index int) bool
Items() []*ArgumentDataItem
RangeItems(start, end int) []*ArgumentDataItem
Item(index int) *ArgumentDataItem
SetItems(items []*ArgumentDataItem)
AddItems(items []*ArgumentDataItem)
// contains filtered or unexported methods
}
type IBrowseEventEmit ¶
type IBrowseEventEmit interface {
IEventOn
IEventEmit
Channel(channelId int64) *channel //IPC 获取指定的通道
ChannelIds() (result []int64) //IPC 获取所有通道
EmitChannelId(eventName string, channelId int64, arguments IArgumentList) //IPC 异步事件触发-指定通道ID
EmitChannelIdAndCallback(eventName string, channelId int64, arguments IArgumentList, callback IPCCallback) //IPC 回调事件触发-指定通道ID
EmitChannelIdAndReturn(eventName string, channelId int64, arguments IArgumentList) IIPCContext //IPC 返回值事件触发(处理时间复杂操作尽量不使用,容易造成UI进程锁死)-指定通道ID
}
主进程事件emit
type ICefProcessMessage ¶
type ICefProcessMessage struct {
Name string
ArgumentList IArgumentList
}
func NewProcessMessage ¶
func NewProcessMessage(name string) *ICefProcessMessage
type IEventEmit ¶
type IEventEmit interface {
IEventOn
Events() *event
SetOnEvent(callback func(event IEventOn)) //IPC 事件监听
Emit(eventName string, arguments IArgumentList) //IPC 异步事件触发
EmitAndCallback(eventName string, arguments IArgumentList, callback IPCCallback) //IPC 回调事件触发
EmitAndReturn(eventName string, arguments IArgumentList) IIPCContext //IPC 返回值事件触发(处理时间复杂操作尽量不使用,容易造成UI进程锁死)
}
主Browser进程和Render进程事件emit
type IEventMessage ¶
type IEventOn ¶
type IEventOn interface {
On(name string, eventCallback EventCallback) //IPC 事件监听
Close()
}
主Browser进程和Render进程事件on
type IIPCContext ¶
type IIPCContext interface {
Connect() net.Conn //IPC 链接
EventId() int32 //IPC 事件ID
ChannelId() int64 //render channel channelId
BrowserId() int32 //render channel browserId
Message() *IPCEventMessage //接收的消息数据 一搬配合Response函数
Response(data []byte) //通过响应应达的方式返回结果,在data符合[argumentList]规范可使用Arguments() 一搬配合Message函数
Free() //释放内存
Arguments() IArgumentList //用于 ipc 进程之间通信, 带有参数类型
Result() *IPCContextResult //用于 render(js)进程触发 browser(go)进程监听返回值, 带有固定几个参数类型
// contains filtered or unexported methods
}
进程间IPC通信回调上下文
func NewIPCContext ¶
func NewIPCContext(eventName string, browserId int32, channelId int64, ipcType IPC_TYPE, conn net.Conn, eventMessage *IPCEventMessage, result *IPCContextResult, arguments IArgumentList) IIPCContext
type IPCCallback ¶
type IPCCallback func(context IIPCContext)
type IPCContext ¶
type IPCContext struct {
// contains filtered or unexported fields
}
IPC 上下文
func (*IPCContext) Arguments ¶
func (m *IPCContext) Arguments() IArgumentList
func (*IPCContext) BrowserId ¶
func (m *IPCContext) BrowserId() int32
func (*IPCContext) ChannelId ¶
func (m *IPCContext) ChannelId() int64
func (*IPCContext) Connect ¶ added in v1.1.0
func (m *IPCContext) Connect() net.Conn
func (*IPCContext) EventId ¶
func (m *IPCContext) EventId() int32
func (*IPCContext) Free ¶
func (m *IPCContext) Free()
func (*IPCContext) Message ¶
func (m *IPCContext) Message() *IPCEventMessage
func (*IPCContext) Response ¶
func (m *IPCContext) Response(data []byte)
func (*IPCContext) Result ¶
func (m *IPCContext) Result() *IPCContextResult
type IPCContextResult ¶
type IPCContextResult struct {
// contains filtered or unexported fields
}
func (*IPCContextResult) Data ¶ added in v1.106.11
func (m *IPCContextResult) Data() unsafe.Pointer
func (*IPCContextResult) SetBool ¶
func (m *IPCContextResult) SetBool(ret bool)
func (*IPCContextResult) SetFloat64 ¶
func (m *IPCContextResult) SetFloat64(ret float64)
func (*IPCContextResult) SetInt ¶
func (m *IPCContextResult) SetInt(ret int32)
func (*IPCContextResult) SetString ¶
func (m *IPCContextResult) SetString(ret string)
func (*IPCContextResult) VType ¶
func (m *IPCContextResult) VType() V8_JS_VALUE_TYPE
type IPCEventMessage ¶
type IPCEventMessage struct {
// contains filtered or unexported fields
}
func (*IPCEventMessage) Data ¶
func (m *IPCEventMessage) Data() []byte
func (*IPCEventMessage) DataLen ¶
func (m *IPCEventMessage) DataLen() int32
Click to show internal directories.
Click to hide internal directories.