Show / Hide Table of Contents

# Interface ISocketMessageChannel

Represents a generic WebSocket-based channel that can send and receive messages.

##### Inherited Members

IMessageChannel.GetMessageAsync(UInt64, CacheMode, RequestOptions)
IMessageChannel.GetMessagesAsync(Int32, CacheMode, RequestOptions)
IMessageChannel.GetMessagesAsync(UInt64, Direction, Int32, CacheMode, RequestOptions)
IMessageChannel.GetMessagesAsync(IMessage, Direction, Int32, CacheMode, RequestOptions)
IMessageChannel.DeleteMessageAsync(UInt64, RequestOptions)
IMessageChannel.DeleteMessageAsync(IMessage, RequestOptions)
IMessageChannel.TriggerTypingAsync(RequestOptions)
IMessageChannel.EnterTypingState(RequestOptions)
IChannel.Name
IChannel.GetUsersAsync(CacheMode, RequestOptions)
IChannel.GetUserAsync(UInt64, CacheMode, RequestOptions)
ISnowflakeEntity.CreatedAt
IEntity<UInt64>.Id

###### Namespace: Discord.WebSocket

###### Assembly: Discord.Net.WebSocket.dll

##### Syntax

    public interface ISocketMessageChannel : IMessageChannel, IChannel, ISnowflakeEntity, IEntity<ulong>

### Properties

| Improve this Doc View Source

#### CachedMessages

Gets all messages in this channel's cache.

##### Declaration

    IReadOnlyCollection<SocketMessage> CachedMessages { get; }

##### Property Value

Type | Description
--- | ---
System.Collections.Generic.IReadOnlyCollection<SocketMessage> | A read-only collection of WebSocket-based messages.

### Methods

| Improve this Doc View Source

#### GetCachedMessage(UInt64)

Gets a cached message from this channel.

##### Declaration

    SocketMessage GetCachedMessage(ulong id)

##### Parameters

Type | Name | Description
--- | --- | ---
System.UInt64 | id | The snowflake identifier of the message.

##### Returns

Type | Description
--- | ---
SocketMessage | A WebSocket-based message object; `null` if it does not exist in the cache or if caching is not enabled.

##### Remarks

##### warning

This method requires the use of cache, which is not enabled by default; if caching is not enabled, this method will always return `null`. Please refer to MessageCacheSize for more details.

This method retrieves the message from the local WebSocket cache and does not send any additional request to Discord. This message may be a message that has been deleted.

| Improve this Doc View Source

#### GetCachedMessages(IMessage, Direction, Int32)

Gets the last N cached messages starting from a certain message in this message channel.

##### Declaration

    IReadOnlyCollection<SocketMessage> GetCachedMessages(IMessage fromMessage, Direction dir, int limit = 100)

##### Parameters

Type | Name | Description
--- | --- | ---
IMessage | fromMessage | The message to start the fetching from.
Direction | dir | The direction of which the message should be gotten from.
System.Int32 | limit | The number of messages to get.

##### Returns

Type | Description
--- | ---
System.Collections.Generic.IReadOnlyCollection<SocketMessage> | A read-only collection of WebSocket-based messages.

##### Remarks

##### warning

This method requires the use of cache, which is not enabled by default; if caching is not enabled, this method will always return an empty collection. Please refer to MessageCacheSize for more details.

This method retrieves the message(s) from the local WebSocket cache and does not send any additional request to Discord. This read-only collection may include messages that have been deleted. The maximum number of messages that can be retrieved from this method depends on the MessageCacheSize set.

| Improve this Doc View Source

#### GetCachedMessages(Int32)

Gets the last N cached messages from this message channel.

##### Declaration

    IReadOnlyCollection<SocketMessage> GetCachedMessages(int limit = 100)

##### Parameters

Type | Name | Description
--- | --- | ---
System.Int32 | limit | The number of messages to get.

##### Returns

Type | Description
--- | ---
System.Collections.Generic.IReadOnlyCollection<SocketMessage> | A read-only collection of WebSocket-based messages.

##### Remarks

##### warning

This method requires the use of cache, which is not enabled by default; if caching is not enabled, this method will always return an empty collection. Please refer to MessageCacheSize for more details.

This method retrieves the message(s) from the local WebSocket cache and does not send any additional request to Discord. This read-only collection may include messages that have been deleted. The maximum number of messages that can be retrieved from this method depends on the MessageCacheSize set.

| Improve this Doc View Source

#### GetCachedMessages(UInt64, Direction, Int32)

Gets the last N cached messages starting from a certain message in this message channel.

##### Declaration

    IReadOnlyCollection<SocketMessage> GetCachedMessages(ulong fromMessageId, Direction dir, int limit = 100)

##### Parameters

Type | Name | Description
--- | --- | ---
System.UInt64 | fromMessageId | The message ID to start the fetching from.
Direction | dir | The direction of which the message should be gotten from.
System.Int32 | limit | The number of messages to get.

##### Returns

Type | Description
--- | ---
System.Collections.Generic.IReadOnlyCollection<SocketMessage> | A read-only collection of WebSocket-based messages.

##### Remarks

##### warning

This method requires the use of cache, which is not enabled by default; if caching is not enabled, this method will always return an empty collection. Please refer to MessageCacheSize for more details.

This method retrieves the message(s) from the local WebSocket cache and does not send any additional request to Discord. This read-only collection may include messages that have been deleted. The maximum number of messages that can be retrieved from this method depends on the MessageCacheSize set.

| Improve this Doc View Source

#### GetPinnedMessagesAsync(RequestOptions)

Gets a read-only collection of pinned messages in this channel.

##### Declaration

    Task<IReadOnlyCollection<RestMessage>> GetPinnedMessagesAsync(RequestOptions options = null)

##### Parameters

Type | Name | Description
--- | --- | ---
RequestOptions | options | The options to be used when sending the request.

##### Returns

Type | Description
--- | ---
System.Threading.Tasks.Task<System.Collections.Generic.IReadOnlyCollection<RestMessage>> | A task that represents the asynchronous get operation for retrieving pinned messages in this channel. The task result contains a read-only collection of messages found in the pinned messages.

##### Remarks

This method follows the same behavior as described in GetPinnedMessagesAsync(RequestOptions). Please visit its documentation for more details on this method.

| Improve this Doc View Source

#### SendFileAsync(Stream, String, String, Boolean, Embed, RequestOptions, Boolean)

Sends a file to this message channel with an optional caption.

##### Declaration

    Task<RestUserMessage> SendFileAsync(Stream stream, string filename, string text = null, bool isTTS = false, Embed embed = null, RequestOptions options = null, bool isSpoiler = false)

##### Parameters

Type | Name | Description
--- | --- | ---
System.IO.Stream | stream | The System.IO.Stream of the file to be sent.
System.String | filename | The name of the attachment.
System.String | text | The message to be sent.
System.Boolean | isTTS | Whether the message should be read aloud by Discord or not.
Embed | embed | The Rich Embed to be sent.
RequestOptions | options | The options to be used when sending the request.
System.Boolean | isSpoiler | Whether the message attachment should be hidden as a spoiler.

##### Returns

Type | Description
--- | ---
System.Threading.Tasks.Task<RestUserMessage> | A task that represents an asynchronous send operation for delivering the message. The task result contains the sent message.

##### Remarks

This method follows the same behavior as described in SendFileAsync(Stream, String, String, Boolean, Embed, RequestOptions, Boolean). Please visit its documentation for more details on this method.

| Improve this Doc View Source

#### SendFileAsync(String, String, Boolean, Embed, RequestOptions, Boolean)

Sends a file to this message channel with an optional caption.

##### Declaration

    Task<RestUserMessage> SendFileAsync(string filePath, string text = null, bool isTTS = false, Embed embed = null, RequestOptions options = null, bool isSpoiler = false)

##### Parameters

Type | Name | Description
--- | --- | ---
System.String | filePath | The file path of the file.
System.String | text | The message to be sent.
System.Boolean | isTTS | Whether the message should be read aloud by Discord or not.
Embed | embed | The Rich Embed to be sent.
RequestOptions | options | The options to be used when sending the request.
System.Boolean | isSpoiler | Whether the message attachment should be hidden as a spoiler.

##### Returns

Type | Description
--- | ---
System.Threading.Tasks.Task<RestUserMessage> | A task that represents an asynchronous send operation for delivering the message. The task result contains the sent message.

##### Remarks

This method follows the same behavior as described in SendFileAsync(String, String, Boolean, Embed, RequestOptions, Boolean). Please visit its documentation for more details on this method.

| Improve this Doc View Source

#### SendMessageAsync(String, Boolean, Embed, RequestOptions)

Sends a message to this message channel.

##### Declaration

    Task<RestUserMessage> SendMessageAsync(string text = null, bool isTTS = false, Embed embed = null, RequestOptions options = null)

##### Parameters

Type | Name | Description
--- | --- | ---
System.String | text | The message to be sent.
System.Boolean | isTTS | Determines whether the message should be read aloud by Discord or not.
Embed | embed | The Rich Embed to be sent.
RequestOptions | options | The options to be used when sending the request.

##### Returns

Type | Description
--- | ---
System.Threading.Tasks.Task<RestUserMessage> | A task that represents an asynchronous send operation for delivering the message. The task result contains the sent message.

##### Remarks

This method follows the same behavior as described in SendMessageAsync(String, Boolean, Embed, RequestOptions). Please visit its documentation for more details on this method.