В моем личном опыте написания расширений я склонен использовать sendMessage
для инициализации состояния и подключаться в любое время, когда я хочу отправлять сообщения повторно.
Например, мои расширения обычно имеют пользователя-конфигурируемые опции, и мне нужен способ отправить эти опции в мои скрипты контента.Я использую sendMessage
и onMessage
для передачи объекта JSON в мои скрипты содержимого.Этот объект содержит различные пользовательские настройки и, возможно, другое состояние.
Я также создал небольшую библиотеку, которая позволяет определять сочетания клавиш на фоновой странице.Как это работает, просто: контент-скрипт внедряется в каждую страницу, который затем прослушивает события keydown
и keyup
.
Когда происходит событие, он использует chrome.runtime.connect
для связи с фоновой страницей.,Я думаю, что это отличный пример того, когда долгоживущее соединение было бы более полезным, чем многие sendMessage
вызовы.
Я не думаю, что есть что-то, требующее, чтобы вы использовали их так или иначе ...Вы можете использовать несколько sendMessage
или отправить только одно сообщение с подключением.Я считаю, что это больше вопрос семантики и выбора наиболее подходящего инструмента для работы.
Также имейте в виду, что использование connect позволяет легко сохранять отдельные состояния для каждого соединения, тогда как это может быть немногос sendMessage
.
сложнее. Что касается производительности ... Честно говоря, не знаю, но я ожидаю, что они будут хотя бы похожими, то есть отправка 5 sendMessage
будет примерно эквивалентна отправке5 сообщений с подключением.Имейте в виду, что они асинхронные, поэтому время может меняться в зависимости от обстоятельств.