本文介绍了 JavaScript Realtime SDK version 2 API 在 version 3 中对应的用法。
v2 中所有带的 callback 参数在 v3 中均会返回 Promise,请在 Promise 的回调中处理异步 API 的成功、失败情况。下面不再赘述 callback 参数的变化。
RealtimeObject 在 v3 中对应的是 Realtime 与 IMClient,它们是分开的两个概念,一个 Realtime 实例可以对应多个 IMClient,与具体 IMClient 无关的信息由 Realtime 管理。
RealtimeObject
Realtime
IMClient
AV.realtime
Realtime#createIMClient
appId
secure
ssl
clientId
createIMClient
id
auth
signatureFactory
conversationSignatureFactory
encodeHTML
RealtimeObject#open
RealtimeObject#close
IMClient#close
RealtimeObject#on
RealtimeObject#once
RealtimeObject#emit
RealtimeObject#off
RealtimeObject#conv
RealtimeObject#room
IMClient#createConversation
IMClient#getConversation
RealtimeObject#query
IMClient#getQuery
ConversationQuery
find
RealtimeObject#ping
IMClient#ping
RoomObject#add
Conversation#add
RoomObject#remove
Conversation#remove
RoomObject#join
Conversation#join
RoomObject#leave
Conversation#quit
RoomObject#list
Conversation
members
RoomObject#send
Conversation#send
Message
receipt
transient
type
Message#setNeedReceipt
Message#setTransient
RoomObject#receive
message
RoomObject#receipt
RoomObject#log
Conversation#queryMessages
Conversation#createMessagesIterator
RoomObject#count
Conversation#count
RoomObject#update
Conversation#setName
Conversation#setAttribute
Conversation#setAttributes
Conversation#save
v2 中所有的事件都在 RealtimeObject 上派发,v3 中与对话相关的事件会同时在 Conversation 上派发。 断线重连机制已重新设计,请参考 《JavaScript 即时通讯开发指南》- 网络状态响应。
open
reconnect
close
IMClient.close
disconnect
reuse
schedule
retry
create
invited
membersjoined
kicked
membersleft
memberjoined
memberleft
member
JavaScript 即时通讯 SDK v3 迁移指南
本文介绍了 JavaScript Realtime SDK version 2 API 在 version 3 中对应的用法。
callback
v2 中所有带的 callback 参数在 v3 中均会返回 Promise,请在 Promise 的回调中处理异步 API 的成功、失败情况。下面不再赘述 callback 参数的变化。
RealtimeObject
RealtimeObject在 v3 中对应的是Realtime与IMClient,它们是分开的两个概念,一个Realtime实例可以对应多个IMClient,与具体IMClient无关的信息由Realtime管理。AV.realtimeRealtimeRealtime#createIMClientRealtime需要使用 new 关键字进行初始化appIdRealtime参数appIdsecureRealtime参数sslclientIdcreateIMClient参数idauthcreateIMClient参数signatureFactory以及conversationSignatureFactoryencodeHTMLRealtimeObject#openRealtimeObject#closeIMClient#closeIMClient#close是一个异步方法。RealtimeObject#onRealtimeObject#onceRealtimeObject#emitRealtimeObject#offRealtime与IMClient的同名方法RealtimeObject#conv/RealtimeObject#roomIMClient#createConversationRealtimeObject#conv/RealtimeObject#roomIMClient#getConversationRealtimeObject#queryIMClient#getQueryIMClient#getQuery同步返回一个ConversationQuery实例用于构造查询条件,再调用其find方法执行该查询。RealtimeObject#pingIMClient#pingRoomObject
RoomObject#addConversation#addRoomObject#removeConversation#removeRoomObject#joinConversation#joinRoomObject#leaveConversation#quitRoomObject#listConversation的members属性,有成员变动时该属性会自动更新。RoomObject#sendConversation#sendMessage实例,而不是一个 JSON 对象。receipt└ 参数
transient└ 参数
typeMessage的信息。你需要调用Message#setNeedReceipt、Message#setTransient以及构造对应类型的Message。RoomObject#receiveConversation的message事件RoomObject#receiptConversation的receipt事件RoomObject#logConversation#queryMessages或Conversation#createMessagesIteratorRoomObject#countConversation#countRoomObject#updateConversation#setNameConversation#setAttribute或Conversation#setAttributesConversation#save事件
v2 中所有的事件都在
RealtimeObject上派发,v3 中与对话相关的事件会同时在Conversation上派发。 断线重连机制已重新设计,请参考 《JavaScript 即时通讯开发指南》- 网络状态响应。openopen事件已被移除,请使用Realtime#createIMClient返回的 Promise 的成功回调代替。openreconnectopen事件由reconnect事件代替。closeclose事件已被移除,请使用IMClient.close返回的 Promise 的成功回调代替。closedisconnectclose事件由disconnect事件代替。reusescheduleretrycreateIMClient#createConversation返回的 Promise 的成功回调代替。invitedmembersjoinedkickedmembersleftmessagereceiptinvitedmemberjoinedkickedmemberleftmessagereceiptConversation上派发。请额外注意members改为member,与其他 SDK 保持统一。