Lively Kernel canvas
// this script is evaluated on world load
TextMorph.prototype.acceptsDropping = Functions.True
WebCollabServer
#processRequest#handleWebCollabRequest:----------#json:#jsonResponse:9.6000000000000014
debugMode9.600000000000001
#log:#ifDebug:#json:#contentAsJson#requestContent------------------#errorResponse:#successResponse:#jsonResponse:#partialResponse:-------------------#handle#login#logout#reset#broadcast#handleOperationBroadcast#handleSimpleBroadcast9.6000000000000011requesturlrequestJsondebugdebugMode9.6000000000000014WebCollabHandler
null0.019605330857204686null
WebCollabSession
usercreationTimeresponseStreamlistenOnChannels
#sendOnResponseStream:onError:#destroy#isActive#listensOn:<channel>#listenOnChannels--------------------------------------------#deleteOpAgentForDoc:#findOrCreateAgentForDoc:#opAgentForDoc:#sendOpMsg:9.6000000000000019\r#listenOnChannels\r--------------------------------------------\r#deleteOpAgentForDoc:\n#findOrCreateAgentForDoc:\n#opAgentForDoc:\n#sendOpMsg:"]]>
9.600000000000001
serverUser1sessions*11
1
WebCollabOpAgent
opAgents*11
transform:and:transformAdd:add:transformAdd:del:transformDel:add:transformDel:del:----------------applyOpMsg:applyAsMyOpMsg:applyAsOtherOpMsg:-------------generate:receive:basicSend:incMyMsgsincOtherMsgs----------------spawnFor:swapAndSpawnFor:swapMyMsgsOtherMsgs---------------------isUpToDateFor:version#loginCheckUsing:<UserReg>#activateDelayedReceivedWith:#receiveMsg:andNotifyOthersIn:#sendToClient:using:sendOp:<--doesnothing9.60000000000000112\r#activateDelayedReceivedWith:\r#receiveMsg:andNotifyOthersIn:\r#sendToClient:using: "]]>
userchannel-----------outgoingmyMsgsotherMsgsdelayedReceivedMessagesdelayedSendMessages9.6000000000000017
nullnull
null-0.05549850524571683null
WebCollabLogger
null-2.4227626269614633null
null-1.101450795744269null
nullnull
Serverside29.85983999999999
createdperrequest11
1
Singleton11
userReg111
#ifDebug:-------------#login:responseStream:listenOnChannels:#logout:#newSessionFor:#broadcast:on:#hasActiveSessionFor:#sessionFor:--------#reset#clean------------#deleteOpAgentsForDoc:#receiveOpMsg:for:#registerUser:forDoc:#agentsForDoc:#opAgentForUser:userwithDoc:9.600000000000001
16userDictmultiUserDocumentsdebugModereceiveSemaphore9.6000000000000013
WebCollabUserRegistration
WebCollabServernull
true
null
true
null0.4636476090008061null
null
true
null
true
null
true
null0.4636476090008061null
null
true
null
true
WebCollabHandler11null
true
null0.05352026845931512null
null
true
null0.0045453538843601106null
WebCollabAddOp
WebCollabDelOp1
WebCollabNullOp1
null-1.2504194031263054null
WebCollabOp
null-1.92040344490196null
null-1.5841645165405807null
Problems-intermixedfunctionalityofsession/streamhandlingandoperationaltransformationstuffinWebCollabHandler,WebCollabUserRegistration,WebCollabSession-version/myMsgs/otherMsgsinWebCollabMultiUserTextDocument?-WebCollabLoggernotusedconsistently-channelvs.docURL-->doesWebCollabOpAgentneedchannel?-betterinvertrelationshipWebCollabMultiUserTextDocument-->WebCollabOpAgent? does WebCollabOpAgent need channel?\r- better invert relation ship WebCollabMultiUserTextDocument --> WebCollabOpAgent ?"]]>
WebCollabMultiUserTextDocument
doc111
#asJsonObj#applyOp:#spawn9.6000000000000012
contentdocURIops//justfordebugging9.600000000000001
2
1
actually1:1relationship111
10000.4801891662846357Wikicontroltrue
10000.0423921966923979Wikicontroltrue
10000.0006997341235168953Wikicontroltrue
10000.8100000004856105Wikicontroltrue
LoginHandlingLoginprocess*Clientrequestslogin*userRegchecksifisLoggedIn:ifyesthenerrorresponse*userReg#login:responseStream:listenOnChannels:iscalled*createsanewsessionifnecessaryandassignsresponseStreamandchannelsLogoutprocess*Clientrequestslogout*userRegchecksifisLoggedIn:ifnothenerrorresponse*userReg#logout:iscalled**getsessionfromuserDict**ifNilthenshowmessageotherwise#destroy**sessionisremovedfromuserDict14
10008.326048041941265Wikicontroltrue
#isLoggedIn:*serverUser?yes*userDicthasnoentry(session)atusername?no*sessionisNil?no*sessionisActive?yesSession>>isActive:*responseStreamexistsandisstillconnectedSession>>destroy*disconnectsresponseStream*doesnotsetittonil9>isActive:\r* responseStream exists and is still connected\r\rSession>>destroy\r* disconnects responseStream\r* does not set it to nil"]]>
Ineedtodistinguishbetweensessionexistsanduserisactuallyloggedinandconnectioniscurrentlyoffline/inactivechangingbehaviorof#sessionFor:removed#isLoggedIn:#loginCheckUsing:adding#hasActiveSession:done4
null-1.7993499754327844null
usesinjecteduserReg#sessionFor:111null
null42