リリースノート¶
- CHANGE
下位互換のない変更
- UPDATE
下位互換がある変更
- ADD
下位互換がある追加
- FIX
バグ修正
過去のリリースノートを確認したい場合は 古いリリースノート をご確認ください。
2026.1.0¶
- リリース日:
2026-06-18
ESM 専用パッケージへの移行について¶
Sora JavaScript SDK 2026.1.0 から package.json の exports["."] から require 条件を削除し、ESM のみのサポートになりました。
require("sora-js-sdk") は 2025.2.0 以前でも ERR_REQUIRE_ESM で失敗していましたが、
2026.1.0 以降は ERR_PACKAGE_PATH_NOT_EXPORTED でエラーメッセージが変わります。
CommonJS から利用していた場合は import または await import() に置き換えてください。
Node.js のサポートバージョンについて¶
Sora JavaScript SDK 2026.1.0 から Node.js の最低要件は 22.18.0 以上になりました。
Node.js 20 は 2026-04-30 に End Of Life (EoL) を迎えたためサポートを終了しました。 Node.js 22 系を利用する場合は 22.17.x 以前ではビルドが通らない点に注意してください。
変更履歴¶
- [CHANGE] Node.js 20 のサポートを終了しました - Node.js 20 は 2026-04-30 に End Of Life (EoL) を迎えました - https://github.com/nodejs/Release#release-schedule
- [CHANGE] Node.js の最低要件を 22.18.0 以上に引き上げました
- 後続のビルドツール移行で導入される
tsdown0.22 系が Node.js^22.18.0 || >=24.0.0を要求するため - [CHANGE]
package.jsonのexports["."]からrequire条件を削除し ESM のみをサポートするように変更しました -require("sora-js-sdk")は元からERR_REQUIRE_ESMで失敗していましたが、削除後はERR_PACKAGE_PATH_NOT_EXPORTEDでエラーメッセージが変わります - CommonJS で利用していたコードはimportまたはawait import()に置き換える必要があります - [CHANGE]
removeAudioTrack/removeVideoTrack実行中にdisconnect()等でRTCPeerConnectionが破棄された場合にConnectError(reason"REMOVE_TRACK_DURING_DISCONNECT") で reject するように変更しました - 利用者は.catchで reject を受ける必要がある (fire-and-forget で呼んでいる場合は unhandled promise rejection が発生する) - 非推奨のstopAudioTrack/stopVideoTrack、およびreplaceAudioTrack/replaceVideoTrack経由でも同じ reject が伝播する - [CHANGE]
abendPeerConnectionState()の発火順を他 3 系統と揃え timeline → callback の順に変更しました - [UPDATE] pnpm 11 系に上げました
- [UPDATE] TypeScript 6.0 へ対応しました
- [FIX]
trace()が JWT 等の機密を含む metadata をconsole/callbacks.logに raw 出力していたセキュリティ問題を redact で修正しました - [FIX]
rpcメソッドのサンプルコードで、実際に存在しない RPC メソッド名が使われていた問題を修正しました - [FIX]
type: "redirect"受信時に旧 WebSocket のonmessageハンドラが解除されていなかった問題を修正しました - [FIX]
type: "switched"(ignore_disconnect_websocket) 経路で旧 WebSocket のonmessage/onerrorハンドラが解除されていなかった問題を修正しました - [FIX]
disconnect()が並列実行されたときcallbacks.disconnect()が複数回発火しないように修正しました - [FIX]
onDataChannelで同名 label の DataChannel を上書きする際に旧 DataChannel のハンドラを解除し close するように修正しました - [FIX]
disconnect()で WebSocket がOPEN以外の状態のときにdisconnectcallback が呼ばれない問題を修正しました - [FIX]
iceConnectionStateがdisconnectedで 10 秒経過した際の検知が現行ブラウザで動作していなかった問題を修正しました - [FIX] 切断系メソッド 5 経路で
pc.onicecandidateを解放し Trickle ICE 由来の unhandled rejection を防ぐように修正しました - [FIX]
sendAnswer()のws.send()が同期 throw したときに内部状態がクリーンアップされなかった問題を修正しました - [FIX]
signaling()のws.onmessage内で例外が発生したときにconnect()がconnectionTimeoutまで固まっていた問題を修正しました - [FIX]
generateCertificateが失敗した環境 (FIPS モード等) でも接続できるようにフォールバックするように修正しました - [FIX]
disconnect()で DataChannel 切断エラー (code: 4999) 時にabendevent がnormalで上書きされないように修正しました - [FIX]
createSignalingMessage()で{ audioBitRate: undefined }のような呼び出しでmessage.audio/message.videoが boolean true から空オブジェクト{}に置換されていた問題を修正しました - 関連してspotlightNumber/audioOpusParams*にundefinedを渡してもmessageにundefinedキーが積まれないように修正しました - [FIX]
messaging()が呼び出し側に渡された options を破壊しないように修正しました - [FIX]
ConnectionBaseconstructor で options を shallow copy に変更しskipIceCandidateEventの内部代入が呼び出し側 options に漏れないようにしました - 上記messaging()の修正とあわせて、同一 options をsendrecv()/sendonly()/recvonly()とmessaging()に渡したときに先行 Connection の options まで書き換わる問題も解消しました - [FIX]
abend()の abend 分岐でSoraCloseEventを 2 回生成して timeline と callback に別インスタンスを渡していたのを 1 つのインスタンスを共有するように修正しました - [FIX]
sendSignalingMessage/sendStatsMessageで送信前に readyState を確認し、OPEN以外の状態での送信を防ぐように修正しました
2025.2.0¶
- リリース日:
2025-12-10
変更履歴¶
- [ADD] 接続が確立した際に発火する
connectedコールバックを追加しましたRTCPeerConnectionのconnectionStateがconnectedかつシグナリング通知で自身のconnection.createdが通知されたタイミングで発火しますconnectedコールバックは 一度のみ 発火しますconnectedコールバックはシグナリング通知が無効な場合は発火しません- 詳細は connected をご確認ください
- [ADD] シグナリングが DataChannel 経由に切り替わった際に発火する
switchedコールバックを追加しました - DataChannel シグナリング機能を利用している場合にのみ発火します - 詳細は switched をご確認ください - [ADD] サイマルキャスト機能で初期の
ridを指定するsimulcast_request_ridオプションを追加しました - デフォルトは未指定です -simulcastをtrueで指定する必要があります -sendrecvまたはrecvonlyでのみ有効です - [ADD] RPC 機能を利用できる
rpcメソッドを追加しました - [ADD] 利用できる RPC 一覧が取得できる
rpcMethodsを追加しました
2025.1.0¶
- リリース日:
2025-06-12
レガシーストリーム機能の廃止について¶
Sora 2025.1.0 のレガシーストリーム機能の廃止に伴い、 Sora JavaScript SDK の 2025.1.0 でレガシーストリーム機能を廃止しました。
今後、レガシーストリーム機能を継続して利用したい場合は、 Sora JavaScript SDK の 2025.1.0 より以前のバージョンを利用してください。
multistream オプションの廃止について¶
今回 Sora 2025.1.0 でレガシーストリーム機能の廃止に伴い multistream オプションを廃止しました。
もし multistream オプションを指定している場合は、
options から multistream 項目を削除して利用するようにしてください。
multistream オプションを指定しない場合は何もする必要がありません。
sora = Sora.connection(signalingUrl, debug);
connection = sora.sendonly(channelId, undefined, {
// 廃止された multistream オプションなので、この項目を削除してください
multistream: true,
});
- 2017 年にリリースした Sora JavaScript SDK で
multistreamオプションを追加しました - 2022 年にリリースした Sora JavaScript SDK で
multistreamオプションのデフォルト値をtrueを変更しました
変更履歴¶
- [CHANGE] Sora 2025.1.0 で廃止される、レガシーストリーム機能への対応を終了しました
- [CHANGE] レガシーストリーム対応の終了に伴い、オプションの
multistream項目を廃止しました - [ADD]
onIceCandidateを呼ばないskipIceCandidateEventオプションを追加しました - [FIX] シグナリング URL が一つの場合でも配列として扱うようになっていた問題を修正しました
- [FIX] シグナリング URL が空配列の場合エラーになるように修正しました