Documentation ¶
Overview ¶
This package includes some basics for the Steam protocol. It defines basic interfaces that are used throughout go-steam: There is IMsg, which is extended by IClientMsg (sent after logging in) and abstracts over the outgoing message types. Both interfaces are implemented by ClientMsgProtobuf and ClientMsg. Msg is like ClientMsg, but it is used for sending messages before logging in.
There is also the concept of a Packet: This is a type for incoming messages where only the header is deserialized. It therefore only contains EMsg data, job information and the remaining data. Its contents can then be read via the Read* methods which read data into a MessageBody - a type which is Serializable and has an EMsg.
In addition, there are extra types for communication with the Game Coordinator (GC) included in the gamecoordinator sub-package. For outgoing messages the IGCMsg interface is used which is implemented by GCMsgProtobuf and GCMsg. Incoming messages are of the GCPacket type and are read like regular Packets.
The actual messages and enums are in the sub-packages steamlang and protobuf, generated from the SteamKit data.
Index ¶
- Constants
- func ValidAvatar(avatar []byte) bool
- type ClientMsg
- func (c *ClientMsg) GetMsgType() steamlang.EMsg
- func (c *ClientMsg) GetSessionId() int32
- func (c *ClientMsg) GetSourceJobId() JobId
- func (c *ClientMsg) GetSteamId() steamid.SteamId
- func (c *ClientMsg) GetTargetJobId() JobId
- func (c *ClientMsg) IsProto() bool
- func (c *ClientMsg) Serialize(w io.Writer) error
- func (c *ClientMsg) SetSessionId(session int32)
- func (c *ClientMsg) SetSourceJobId(job JobId)
- func (c *ClientMsg) SetSteamId(s steamid.SteamId)
- func (c *ClientMsg) SetTargetJobId(job JobId)
- type ClientMsgProtobuf
- func (c *ClientMsgProtobuf) GetMsgType() steamlang.EMsg
- func (c *ClientMsgProtobuf) GetSessionId() int32
- func (c *ClientMsgProtobuf) GetSourceJobId() JobId
- func (c *ClientMsgProtobuf) GetSteamId() steamid.SteamId
- func (c *ClientMsgProtobuf) GetTargetJobId() JobId
- func (c *ClientMsgProtobuf) IsProto() bool
- func (c *ClientMsgProtobuf) Serialize(w io.Writer) error
- func (c *ClientMsgProtobuf) SetSessionId(session int32)
- func (c *ClientMsgProtobuf) SetSourceJobId(job JobId)
- func (c *ClientMsgProtobuf) SetSteamId(s steamid.SteamId)
- func (c *ClientMsgProtobuf) SetTargetJobId(job JobId)
- type Deserializer
- type IClientMsg
- type IMsg
- type JobId
- type MessageBody
- type Msg
- type Packet
- type Serializable
- type Serializer
Constants ¶
const DefaultAvatar = "fef49e7fa7e1997310d705b2a6158ff8dc1cdfeb"
const EClientPersonaStateFlag_DefaultInfoRequest = steamlang.EClientPersonaStateFlag_PlayerName | steamlang.EClientPersonaStateFlag_Presence | steamlang.EClientPersonaStateFlag_SourceID | steamlang.EClientPersonaStateFlag_GameExtraInfo
the default details to request in most situations
Variables ¶
This section is empty.
Functions ¶
func ValidAvatar ¶
Types ¶
type ClientMsg ¶
type ClientMsg struct { Header *steamlang.ExtendedClientMsgHdr Body MessageBody Payload []byte }
Represents a struct backed client message.
func NewClientMsg ¶
func NewClientMsg(body MessageBody, payload []byte) *ClientMsg
func (*ClientMsg) GetMsgType ¶
func (*ClientMsg) GetSessionId ¶
func (*ClientMsg) GetSourceJobId ¶
func (*ClientMsg) GetSteamId ¶
func (*ClientMsg) GetTargetJobId ¶
func (*ClientMsg) SetSessionId ¶
func (*ClientMsg) SetSourceJobId ¶
func (*ClientMsg) SetSteamId ¶
func (*ClientMsg) SetTargetJobId ¶
type ClientMsgProtobuf ¶
type ClientMsgProtobuf struct { Header *steamlang.MsgHdrProtoBuf Body proto.Message }
Represents a protobuf backed client message with session data.
func NewClientMsgProtobuf ¶
func NewClientMsgProtobuf(eMsg steamlang.EMsg, body proto.Message) *ClientMsgProtobuf
func (*ClientMsgProtobuf) GetMsgType ¶
func (c *ClientMsgProtobuf) GetMsgType() steamlang.EMsg
func (*ClientMsgProtobuf) GetSessionId ¶
func (c *ClientMsgProtobuf) GetSessionId() int32
func (*ClientMsgProtobuf) GetSourceJobId ¶
func (c *ClientMsgProtobuf) GetSourceJobId() JobId
func (*ClientMsgProtobuf) GetSteamId ¶
func (c *ClientMsgProtobuf) GetSteamId() steamid.SteamId
func (*ClientMsgProtobuf) GetTargetJobId ¶
func (c *ClientMsgProtobuf) GetTargetJobId() JobId
func (*ClientMsgProtobuf) IsProto ¶
func (c *ClientMsgProtobuf) IsProto() bool
func (*ClientMsgProtobuf) SetSessionId ¶
func (c *ClientMsgProtobuf) SetSessionId(session int32)
func (*ClientMsgProtobuf) SetSourceJobId ¶
func (c *ClientMsgProtobuf) SetSourceJobId(job JobId)
func (*ClientMsgProtobuf) SetSteamId ¶
func (c *ClientMsgProtobuf) SetSteamId(s steamid.SteamId)
func (*ClientMsgProtobuf) SetTargetJobId ¶
func (c *ClientMsgProtobuf) SetTargetJobId(job JobId)
type Deserializer ¶
type IClientMsg ¶
type IClientMsg interface { IMsg GetSessionId() int32 SetSessionId(int32) GetSteamId() steamid.SteamId SetSteamId(steamid.SteamId) }
Interface for client messages, i.e. messages that are sent after logging in. ClientMsgProtobuf and ClientMsg implement this.
type IMsg ¶
type IMsg interface { Serializer IsProto() bool GetMsgType() steamlang.EMsg GetTargetJobId() JobId SetTargetJobId(JobId) GetSourceJobId() JobId SetSourceJobId(JobId) }
Interface for all messages, typically outgoing. They can also be created by using the Read* methods in a PacketMsg.
type MessageBody ¶
type MessageBody interface { Serializable GetEMsg() steamlang.EMsg }
type Msg ¶
type Msg struct { Header *steamlang.MsgHdr Body MessageBody Payload []byte }
func NewMsg ¶
func NewMsg(body MessageBody, payload []byte) *Msg
func (*Msg) GetMsgType ¶
func (*Msg) GetSourceJobId ¶
func (*Msg) GetTargetJobId ¶
func (*Msg) SetSourceJobId ¶
func (*Msg) SetTargetJobId ¶
type Packet ¶
type Packet struct { EMsg steamlang.EMsg IsProto bool TargetJobId JobId SourceJobId JobId Data []byte }
Represents an incoming, partially unread message.
func (*Packet) ReadClientMsg ¶
func (p *Packet) ReadClientMsg(body MessageBody) *ClientMsg
func (*Packet) ReadMsg ¶
func (p *Packet) ReadMsg(body MessageBody) *Msg
func (*Packet) ReadProtoMsg ¶
func (p *Packet) ReadProtoMsg(body proto.Message) *ClientMsgProtobuf
type Serializable ¶
type Serializable interface { Serializer Deserializer }
type Serializer ¶
Directories ¶
Path | Synopsis |
---|---|
Contains code generated from SteamKit's SteamLanguage data.
|
Contains code generated from SteamKit's SteamLanguage data. |