Книга: JavaScript. Подробное руководство, 6-е издание
EventSource
EventSource
Comet-соединение c HTTP-сервером (EventTarget)
Объект EventSource
представляет долгоживущее HTTP-соединение, посредством которого веб-сервер может отправлять клиенту текстовые сообщения. Чтобы использовать события, определяемые стандартом «Server-Sent Events», следует передать URL-адрес сервера конструктору EventSourсе()
и затем зарегистрировать обработчик события «message» в полученном объекте EventSource.
Спецификация «Server-Sent Events» появилась совсем недавно и на момент написания этих строк поддерживалась не во всех броузерах.
Конструктор
new EventSource(string url)
Создает новый объект EventSource
, подключенный к веб-серверу, определяемому аргументом url. Адрес url интерпретируется относительно URL-адреса документа.
Константы
Следующие константы определяют допустимые значения свойства readyState
.
unsigned short CONNECTING = 0
Идет установка соединения, или соединение было закрыто и объект EventSource
пытается восстановить его.
unsigned short OPEN = 1
Соединение установлено и готово к приему событий.
unsigned short CLOSED = 2
Соединение было закрыто либо вызовом метода close(),
либо в результате фатальной ошибки, не позволяющей восстановить его.
Свойства
readonly unsigned short readyState
Состояние соединения. Возможные значения определяются константами, перечисленными выше.
readonly string url
Абсолютный URL-адрес, к которому подключен объект EventSource
.
Методы
void close()
Закрывает соединение. После вызова этого метода объект EventSource
не может больше использоваться. Если потребуется вновь установить соединение, следует создать новый объект EventSource
.
Обработчики событий
Сетевые взаимодействия выполняются асинхронно, поэтому объект EventSource
возбуждает события после открытия соединения, при появлении ошибок и при получении сообщений от сервера. Обработчики событий можно зарегистрировать с помощьк? перечисленных далее свойств или воспользовавшись методами интерфейса EventTarget
. Все события, генерируемые объектом EventSource
, посылаются самому объекту EventSource
. Они не всплывают, и для них не предусмотрены действия по умолчанию, которые можно было бы отменить.
onerгог
Вызывается при обнаружении ошибки. Обработчику передается простой объект Event
.
onmessage
Вызывается при получении сообщения от сервера. Обработчику передается объект события MessageEvent
, а текст, отправленный сервером, доступен через свойство data
этого объекта.
оnореп
Вызывается при открытии соединения. Обработчику передается простой объект Event
.
- ApplicationCache
- ArrayBuffer
- ArrayBufferView
- Attr
- Audio
- BeforeUnloadEvent
- Blob
- BlobBuilder
- Button
- Canvas
- BlobBuilder
- Button
- Canvas
- CanvasGradient
- CanvasPattern
- CanvasRenderingContext2D
- ClientRect
- CloseEvent
- Comment
- Console
- ConsoleCommandLine
- CSS2Properties
- CSSRule
- CSSStyleDeclaration
- CSSStyleSheet
- DataTransfer
- DataView
- Document
- DocumentFragment
- DocumentType
- DOMException
- DOMImplementation
- DOMSettableTokenList
- DOMTokenList
- Element
- ErrorEvent
- Event
- EventSource
- EventTarget
- FieldSet
- File
- FileError
- FileReader
- FileReaderSync
- Form
- FormControl
- Form Data
- FormValidity
- Geocoordinates
- Geolocation
- GeolocationError
- Geoposition
- HashChangeEvent
- History
- HTMLCollection
- HTMLDocument
- HTMLEIement
- HTMLFormControlsCollection
- HTMLOptionsCollection
- IFrame
- Image
- ImageData
- Input
- jQuery jQuery 1.4
- KeyEvent
- Label
- Link
- Location
- MediaElement
- MediaError
- MessageChannel
- MessageEvent
- MessagePort
- Meter
- MouseEvent
- Navigator
- Node
- NodeList
- Option
- Output
- PageTransitionEvent
- PopStateEvent
- ProcessingInstruction
- Progress
- ProgressEvent
- Screen
- Script
- Select
- Storage
- StorageEvent
- Style
- Table
- TableCell
- TableRow
- TableSection
- Text
- TextArea
- TextMetrics
- TimeRanges
- TypedArray
- URL
- Video
- WebSocket
- Window
- Worker
- WorkerGlobalScope
- WorkerLocation
- WorkerNavigator
- XMLHttpRequest
- XMLHttpRequestUpload