# Change user's scene from change event in admin's scene

**URL:** https://discourse.threejs.org/t/change-users-scene-from-change-event-in-admins-scene/21140
**Category:** Questions
**Tags:** loaders, animation
**Created:** [December 1, 2020, 2:07am UTC](https://discourse.threejs.org/t/change-users-scene-from-change-event-in-admins-scene/21140 "2020-12-01T02:07:44Z")
**Posts on this page:** 3
**Page:** 1

<div class="post-metadata">

### Author: ![giap\_nguyen](https://yyz1.discourse-cdn.com/flex035/user_avatar/discourse.threejs.org/giap_nguyen/32/14860_2.png) [@giap\_nguyen](https://discourse.threejs.org/u/giap_nguyen)
#### Post date: [December 1, 2020, 2:07am UTC](https://discourse.threejs.org/t/change-users-scene-from-change-event-in-admins-scene/21140/1 "2020-12-01T02:07:44Z")

</div>

Hi everyone!

I’m trying to implement a share screen experience cross-browser through WebSocket and Threejs.

I want when the administrator changes the 3d scene in the admin portal, the 3d scene at the user will also change.

I added an event listener for 3d scene in the admin portal and send data event to the user’s browser through Websocket.

```
// code listen event change in admin site

controls = new OrbitControls(camera, renderer.domElement);

controls.addEventListener('change', function (event) {

render();

// send data to user's browser

emitEvent(event);

});

```

this is data I give when has event change: [https://jsoneditoronline.org/…](https://jsoneditoronline.org/?fbclid=IwAR3v-085vznrzsyiSXhywudqQH3YfseV4O2-B4gDgiKLB8M7Mu9-TgYKeao#left=cloud.33d8c04eb89c40ae920e8dadee70bae3&right=local.taxoqi)

But I can’t apply data events to change the user’s scene follow the scene in the admin portal.

```
// here is code listen event change in user's site

// apply event changed scene
socket.on('changed_scene', (event) => {

console.log(JSON.stringify(event));

let matrix = event.target.object.object.matrix;

// not working

camera.matrixAutoUpdate = false

camera.matrix.set(...matrix);

render();

});

```

I really need help. please help me if you know.

Thank you very much!

---

<div class="post-metadata">

### Author: ![Insopitus](https://yyz1.discourse-cdn.com/flex035/user_avatar/discourse.threejs.org/insopitus/32/12464_2.png) [@Insopitus](https://discourse.threejs.org/u/Insopitus)
#### Post date: [December 1, 2020, 8:01am UTC](https://discourse.threejs.org/t/change-users-scene-from-change-event-in-admins-scene/21140/2 "2020-12-01T08:01:50Z")

</div>

> let matrix = event.target.object.object.matrix;

Change it to `event.target.object.matrix`

> camera.matrix.set(…matrix)

matrix is a `THREE.Matrix4` instance, and is not iterable. You are supposed to use `matrix.elements `instead. I recommend `camera.matrix.fromArray(matrix.elements)` or `camera.matrix.copy(matrix)` here, so you don’t have to care about the transpose thing.

---

<div class="post-metadata">

### Author: ![giap\_nguyen](https://yyz1.discourse-cdn.com/flex035/user_avatar/discourse.threejs.org/giap_nguyen/32/14860_2.png) [@giap\_nguyen](https://discourse.threejs.org/u/giap_nguyen)
#### Post date: [December 2, 2020, 2:54am UTC](https://discourse.threejs.org/t/change-users-scene-from-change-event-in-admins-scene/21140/3 "2020-12-02T02:54:38Z")

</div>

Thank you very very much. It’s working well
