Advertisement
Guest User

Client.js

a guest
Nov 2nd, 2018
151
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.28 KB | None | 0 0
  1. const EventEmitter = require("events"),
  2. READY_STATE_OPEN = 1;
  3. import { Message } from "./Message";
  4.  
  5. class Client extends EventEmitter {
  6. connect(host, port) {
  7. return new Promise((resolve, reject) => {
  8. this.socket = new WebSocket(`ws://${host}:${port}`);
  9.  
  10. this.socket.addEventListener("open", () => {
  11. resolve();
  12. });
  13.  
  14. this.socket.addEventListener("error", e => {
  15. if (e.target.readyState > READY_STATE_OPEN) reject();
  16. });
  17.  
  18. this.socket.addEventListener("message", e => {
  19. const msg = Message.fromString(e.data),
  20. method = `on${msg.event}`;
  21. if (!this[method]) return;
  22. this[method](msg.data);
  23. });
  24. });
  25. }
  26.  
  27. onparticipants = data => {
  28. this.emit("participants", data);
  29. };
  30.  
  31. ontext = data => {
  32. this.emit("text", data);
  33. };
  34.  
  35. getParticipants = () => {
  36. return ["Mohammed", "Tahar"]; //this.participants;
  37. };
  38.  
  39. join = userName => {
  40. this.userName = userName;
  41. this.send("join", userName);
  42. };
  43.  
  44. message = text => {
  45. this.send("text", {
  46. userName: this.userName,
  47. text,
  48. dateTime: Date.now()
  49. });
  50. };
  51.  
  52. send = (event, data) => {
  53. this.socket.send(Message.toString(event, data));
  54. };
  55. }
  56.  
  57. export default Client;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement