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) GetInt16() int16
- func (m *ArgumentDataItem) GetInt32() int32
- func (m *ArgumentDataItem) GetInt64() int64
- func (m *ArgumentDataItem) GetInt8() int8
- 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) IsInt16() bool
- func (m *ArgumentDataItem) IsInt32() bool
- func (m *ArgumentDataItem) IsInt64() bool
- func (m *ArgumentDataItem) IsInt8() 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) GetInt16 ¶
func (m *ArgumentDataItem) GetInt16() int16
func (*ArgumentDataItem) GetInt32 ¶
func (m *ArgumentDataItem) GetInt32() int32
func (*ArgumentDataItem) GetInt64 ¶
func (m *ArgumentDataItem) GetInt64() int64
func (*ArgumentDataItem) GetInt8 ¶
func (m *ArgumentDataItem) GetInt8() int8
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) IsInt16 ¶
func (m *ArgumentDataItem) IsInt16() bool
func (*ArgumentDataItem) IsInt32 ¶
func (m *ArgumentDataItem) IsInt32() bool
func (*ArgumentDataItem) IsInt64 ¶
func (m *ArgumentDataItem) IsInt64() bool
func (*ArgumentDataItem) IsInt8 ¶
func (m *ArgumentDataItem) IsInt8() 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.