рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд╕реЙрдХреЗрдЯ.-рдХреНрд▓рд╛рдЗрдВрдЯ рдирд╡реАрдирддрдо рдХреЛрдгреАрдп 6. рдХреЗ рд╕рд╛рде рд╕рдВрдЧрдд рдирд╣реАрдВ рд╣реИред рдирд┐рд╖реНрдкрд╛рджрди рд╕рдордп рдореЗрдВ рддреНрд░реБрдЯрд┐ рд╣реИ:
ReferenceError: Global рдХреЛ Object рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ .. / node_modules / socket.io-client / node_modules / socket.io-parser / is-рдмрдлрд░.js (is-рдмрдлрд░.js: 4)
рдЕрдзрд┐рдХ рдЬрд╛рдирдиреЗ рдХреЗ рд▓рд┐рдП рдХреГрдкрдпрд╛ рдиреАрдЪреЗ рдЯрд┐рдкреНрдкрдгреА рдкрдврд╝реЗрдВ:
https://github.com/angular/angular-cli/issues/9827#issuecomment -369578814
рдпрджрд┐ рдЖрдк рдЗрд╕ рддреНрд░реБрдЯрд┐ рдХреЛ рдЕрдкрдиреЗ рд▓рд┐рдП рджреЗрдЦрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рдХреЛрдгреАрдп 6.0 рдРрдк рд╕рд░рд▓ рд╕реЗрд╡рд╛ рдореЗрдВ рдЬреЛрдбрд╝реЗрдВ:
import { Injectable } from 'angular/core';
import * as socketIo from 'socket.io-client';
@Injectable()
export class SocketService {
private socket;
constructor() {}
public initSocket(): void {
this.socket = socketIo();
}
}
рдЬрдм рдЖрдк initSocket рдлрд╝рдВрдХреНрд╢рди рдХреЛ рд╣рдЯрд╛рддреЗ рд╣реИрдВ рддреЛ рддреНрд░реБрдЯрд┐ рдЧрд╛рдпрдм рд╣реЛ рдЬрд╛рддреА рд╣реИред
рдареАрдХ рд╣реИ, рд╕реЙрдХреЗрдЯ.рдЖрдИрдУ-рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдгреАрдп 6 рдореЗрдВ рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рд╣реИред
рдЬреЛрдбрд╝реЗрдВ (рдХрд┐рд╕реА рднреА рд░реВрдк рдореЗрдВ рд╡рд┐рдВрдбреЛ) .global = window; polyfills.ts рдХреЗ рд▓рд┐рдП
рдЗрд╕ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рдФрд░ рдЗрд╕рдХреЗ рдЖрд╢реНрд░рд┐рддреЛрдВ рдореЗрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХрдИ global
рд╕рдВрджрд░реНрдн рд╣реИрдВ: https://github.com/search?utf8=%E2%9C%93&q=global+repo%3Asockette%2Fengine.io-client + рд░реЗрдкреЛ% 3Asocketio% 2Fengine.io-parser + рд░реЗрдкреЛ% 3Asocketio% 2Fsocket.io-client + рд░реЗрдкреЛ% 3Asocketio% 2Fsocket.io-parser + рдПрдХреНрд╕рдЯреЗрдВрд╢рди% 3A.js рдФрд░ type = code & ref = advsearch & l =
рдореИрдВ рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЗрди рд╕рдВрджрд░реНрднреЛрдВ рдХреЛ рд╣рдЯрд╛рдиреЗ рдХреЗ рджреБрд╖реНрдкреНрд░рднрд╛рд╡реЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд┐рд╢реНрдЪрд┐рдд рдирд╣реАрдВ рд╣реВрдВ
@darrachequesne рдХреНрдпрд╛ рдЗрди рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЛ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рдПрдХ рдХрд╛рдВрдЯреЗ рдореЗрдВ рдареАрдХ рд╕реЗ рд╣рд▓ рдХрд┐рдП рдЬрд╛рдиреЗ рддрдХ рдЬреЛрдбрд╝рд╛ рдЬрд╛рдирд╛ рд╕рдВрднрд╡ рд╣реЛрдЧрд╛?
@jessycormier "рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХрд╛ рдХрд╛рдВрдЯрд╛" рд╕реЗ
рдкрд╣рд▓рд╛ рд╕рд╛рдЗрдб-рдЗрдлрд╝реЗрдХреНрдЯ, рдпрд╣ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЧреНрд▓реЛрдмрд▓ рдХреЛ рд╣рдЯрд╛ рд░рд╣рд╛ рд╣реИ https://github.com/darrachequesne/has-binary/pull/4 рдореЗрдВ рдХреБрдЫ рдЗрд▓реЗрдХреНрдЯреНрд░реЙрди рдРрдкреНрд╕ рдЯреВрдЯрддреЗ рд╣реИрдВ: https://github.com/darrachequesne/has-binary/issues 5 ...
рдирдорд╕реНрддреЗред рдХреНрдпрд╛ рдпрд╣рд╛рдБ рдХреЛрдИ рдкреНрд░рдЧрддрд┐ рд╣реИ? рдХреЛрдИ рднреА рд╕рдорд╛рдзрд╛рди? рдХрд┐рд╕реА рднреА рдЕрдиреБрд╢рдВрд╕рд┐рдд рд╕рдорд╛рдзрд╛рди?
@realshaft - рдЙрдкрд░реЛрдХреНрдд рдХрд╛рд░реНрдп-рдореЗрд░реЗ рд▓рд┐рдП Ionic 4 / Angular 6 рд╡реЗрдм рдРрдк рдореЗрдВ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ
рдареАрдХ рд╣реИ, рд╕реЙрдХреЗрдЯ.рдЖрдИрдУ-рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдгреАрдп 6 рдореЗрдВ рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рд╣реИред
(window as any).global = window;
рд╕реЗpolyfills.ts
(src
рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рд╕реНрдерд┐рдд) рдЬреЛрдбрд╝реЗрдВ
@realshaft рдзрдиреНрдпрд╡рд╛рдж, рдпрд╣ рдХреЛрдгреАрдп 6 рдореЗрдВ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ;)
рд╣реИрд▓реЛ @ рд╕рдмрдХреЛ ,
рдХреГрдкрдпрд╛ рдореЗрд░реА рдорджрдж рдХрд░реЗрдВред
рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рдЕрдкрдиреЗ рд╡реЗрдмрд╕реЛрдХреЗрдЯ рдХрдиреЗрдХреНрд╢рди рдХреЛ рд╕рдВрднрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реЗрд╡рд╛ рдмрдирд╛рдИ рдФрд░ рдЗрд╕реЗ рдПрдХ рдШрдЯрдХ рдЗрдВрдЬреЗрдХреНрдЯ рдХрд┐рдпрд╛ред
рд╕реЙрдХреЗрдЯ рдХрд╛ рдХрдиреЗрдХреНрд╢рди рдареАрдХ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдореБрдЭреЗ рд╕рд░реНрд╡рд░ рдХрдВрд╕реЛрд▓ рдореЗрдВ a user connected
рд╣реИред
рд▓реЗрдХрд┐рди рдЬрдм рдореИрдВрдиреЗ рдШрдЯрдХ рд╕реЗ рдПрдХ рд╕рдВрджреЗрд╢ рднреЗрдЬрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рддреЛ рдХреБрдЫ рднреА рдирд╣реАрдВ рднреЗрдЬрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдпрд╣рд╛рдБ рдореЗрд░реА рдлрд╛рдЗрд▓реЗрдВ рд╣реИрдВ:
socketService.ts
'{рдХреЛрдгреАрдп / рдХреЛрд░' рд╕реЗ рдЖрдпрд╛рдд {рдЗрдВрдЬреЗрдХреНрд╢рди}; 'rxjs / Observable' рд╕реЗ рдЖрдпрд╛рдд {рдСрдмреНрдЬрд░реНрд╡реЗрдмрд▓}; 'rxjs / рд╡рд┐рд╖рдп' рд╕реЗ {{рд╡рд┐рд╖рдп} рдЖрдпрд╛рдд рдХрд░реЗрдВ; 'socket.io-client' рд╕реЗ io рдХреЗ рд░реВрдк рдореЗрдВ рдЖрдпрд╛рдд *; @ рдЗрдВрдЬреЗрдХреНрд╢рди ({ рдкреНрд░рджрд╛рди рдХреА рдЧрдИ: 'рдЬрдбрд╝' }) рдирд┐рд░реНрдпрд╛рдд рд╡рд░реНрдЧ рд╕реЙрдХреЗрдЯ рд╕реЗрд╡рд╛ { рдирд┐рдЬреА url = 'http: // localhost: 3000'; рдирд┐рдЬреА рд╕реЙрдХреЗрдЯ = io (this.url); // рд╕реЙрдХреЗрдЯ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдВрджреЗрд╢ рднреЗрдЬреЗрдВ рд╕рдВрджреЗрд╢ (рд╕рдВрджреЗрд╢) { // рд╕рдВрджреЗрд╢ рднреЗрдЬреЗрдВ this.socket.emit ('рдЪреИрдЯ', рд╕рдВрджреЗрд╢); } рдмрд╛рддрдЪреАрдд (рд╕рдВрджреЗрд╢) { this.socket $ .emit ('рдЪреИрдЯ', рд╕рдВрджреЗрд╢); // рджреЗрдЦрдиреЗ рдпреЛрдЧреНрдп } }
рдФрд░ рдШрдЯрдХ рдлрд╝рд╛рдЗрд▓
'{рдХреЛрдгреАрдп / рдХреЛрд░' рд╕реЗ рдЖрдпрд╛рдд {рдШрдЯрдХ, OnInit}; '{../socket.service' рд╕реЗ {SocketService} рдЖрдпрд╛рдд рдХрд░реЗрдВ; @Component ({ рдЪрдпрдирдХрд░реНрддрд╛: 'рдРрдк-рд╕реЙрдХреЗрдЯ', templateUrl: './socket.component.html', styleUrls: ['./socket.component.scss'] }) рдирд┐рд░реНрдпрд╛рдд рд╡рд░реНрдЧ рд╕реЙрдХреЗрдЯрдХрдВрдкреЛрдиреЗрдВрдЯ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИ рдирд┐рд░реНрдорд╛рддрд╛ ( рдирд┐рдЬреА рд╕реЙрдХреЗрдЯ: рд╕реЙрдХреЗрдЯ рд╕реЗрд╡рд╛ ) {} ngOnInit () { } рднреЗрдЬреЗрдВ () { const рд╕рдВрджреЗрд╢ = 'рд╣реИрд▓реЛ'; this.socket.message (msg); } }
рдпрд╣рд╛рдБ рдореЗрд░рд╛ рд╕реЙрдХреЗрдЯ рд╕рд░реНрд╡рд░ рдХрдиреЗрдХреНрд╢рди рд╣реИред рдореИрдВрдиреЗ MVC рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛
const gameModel = рдЖрд╡рд╢реНрдпрдХрддрд╛ ('../ рдореЙрдбрд▓ / рдЦреЗрд▓') const userModel = рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ ('../ рдореЙрдбрд▓ / рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛') const wsModel = рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ ('../ рдореЙрдбрд▓ / рд╕реЙрдХреЗрдЯ') const рд╕реЙрдХреЗрдЯ = рдЖрд╡рд╢реНрдпрдХрддрд╛ ('рд╕реЙрдХреЗрдЯ.io') рдореЙрдбреНрдпреВрд▓ .exports = (рд╕рд░реНрд╡рд░) => { const io = рд╕реЙрдХреЗрдЯ (рд╕рд░реНрд╡рд░); // WebSocket рд╣реИрдВрдбрд▓рд░ io.on ('рдХрдиреЗрдХреНрд╢рди', (рд╕реЙрдХреЗрдЯ) => { рдХрдВрд╕реЛрд▓.рд▓реЙрдЧ ('рдПрдХ рдпреВрдЬрд░ рдХрдиреНрд╡реЗрдиреНрд╕реНрдб') }) // рдЪреИрдЯ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ io.on ('рдЪреИрдЯ', (рд╕рдВрджреЗрд╢) => { // io.emit ('res', json.stringify (msg)) рдХрдВрд╕реЛрд▓.рд▓реЙрдЧ (рд╕рдВрджреЗрд╢); }) }
рдкрд╣рд▓реЗ рд╣реА, рдЖрдкрдХрд╛ рдмрд╣реБрдд рдзрдиреНрдпрд╡рд╛рдж
рдпрд╣рд╛рдБ рдпрд╣ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдмрд╣реБрдд рдЖрд╕рд╛рди рддрд░реАрдХрд╛ рд╣реИ:
Cdn рд╕реЗ socket.io- рдХреНрд▓рд╛рдЗрдВрдЯ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ рдФрд░ src
рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ socket.io-client.js
рдирд╛рдо рдХреЗ рд╕рд╛рде рд░рдЦреЗрдВред
main.ts
рдЕрдВрджрд░ рдпреЗ рдкрдВрдХреНрддрд┐рдпрд╛рдБ рдЬреЛрдбрд╝реЗрдВ:
import * as io_ from './socket.io-client.js';
window['io'] = io_;
рдЕрдВрджрд░ polyfills.ts
рдЬреЛрдбрд╝реЗрдВ:
(window as any).global = window;
рдЕрдм рдЖрдк рдХреЙрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ socket.io-client
рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
window['io']('localhost')
рдореЗрд░рд╛ рдХрд╛рдо рдХреЗрд╡рд▓ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЬреЛрдбрд╝рдХрд░ рд╢реБрд░реВ рд╣реБрдЖ
polyfills.ts
рдЬреЛрдбрд╝ рдХреЗ рдЕрдВрджрд░:(window as any).global = window;
рдХреЛрдгреАрдп 6.1.0
socket.io- рдХреНрд▓рд╛рдЗрдВрдЯ 2.1.1
рдпрд╣ рдХреЛрдгреАрдп 7.1.x рдореЗрдВ рдЕрдкрдЧреНрд░реЗрдб рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдХрд╛рдо рдХрд░рдирд╛ рдЬрд╛рд░реА рд░рдЦрддрд╛ рд╣реИ
рдпрд╣ рдореЗрд░реА рдорджрдж рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдХреНрдпреЛрдВ?
@realshaft рдзрдиреНрдпрд╡рд╛рдж, рдпрд╣ рдХреЛрдгреАрдп 6 рдореЗрдВ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ;)
рдЗрд╕рдиреЗ рдореЗрд░реЗ рд▓рд┐рдП рдХреЛрдгреАрдп 7.x рдкрд░ рднреА рдХрд╛рдо рдХрд┐рдпрд╛, рдзрдиреНрдпрд╡рд╛рджред
(window as any).global = window;
рдЗрд╕рдиреЗ рдореЗрд░реЗ рд▓рд┐рдП рдПрдВрдЧреБрд▓рд░ 7 рдкрд░ рднреА рдХрд╛рдо рдХрд┐рдпрд╛ред
рдПрдХ рд╣реА рд╕рдорд╛рдзрд╛рди рдХреЛрдгреАрдп 8 рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ
рднрдЧрд╡рд╛рди рд╡рд┐рд╢реНрд╡рд╛рд╕ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рдореИрдВ рдпрд╣ рдХрд╣рддрд╛ рд╣реВрдВред рд╡рд╣реА рд╕рдорд╛рдзрд╛рди @mjarkk рдкреНрд░рджрд╛рди рдХрд┐рдпрд╛ред рдХреЛрдгреАрдп 10 рдореЗрдВ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ! - рдореЗрд░реЗ рд▓рд┐рдП, рдЗрд╕рдХрд╛ рдХрд╛рд░рдг рдпрд╣ рд╣реИ рдХрд┐ 2.x рд╕рд░реНрд╡рд░ 3.x рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ!
3 рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рдмрд╛рдж рдпрд╣ рд╣реИрдХ рд╕реНрдЯрд┐рд▓ рд▓рд╛рдореЛ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдореБрдЭреЗ рдпрдХреАрди рд╣реИ рдХрд┐ рдпрд╣ рдХреЛрдгреАрдп 11 рдореЗрдВ рд╕рдорд╛рди рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред
рд▓реЗрдХрд┐рди рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдлрд┐рд░ рд╕реЗ рдкреЙрдкрдЕрдк рдХрд░рддреЗ рд╣реБрдП рдореИрдВ рдЕрдм рдХреЗрд╡рд▓ рджреЗрд╢реА рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╡реЗрдмрд╕реНрдХреЗрдЯреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рд╕рд▓рд╛рд╣ https://javascript.info/websocketред
рднрд╡рд┐рд╖реНрдп рдХреЗ рдкрд╛рдардХреЛрдВ рдХреЗ рд▓рд┐рдП: рдпрд╣ рдореБрджреНрджрд╛ [email protected]
рдореЗрдВ рддрдп рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдЕрдм global
рдСрдмреНрдЬреЗрдХреНрдЯ рдХрд╛ рдХреЛрдИ рд╕рдВрджрд░реНрдн рдирд╣реАрдВ рд╣реИред
рд╕рдВрдмрдВрдзрд┐рдд рд╕рдВрдЪрд╛рд░:
[email protected]
)[email protected]
)рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛: рдПрдВрдЧреБрд▓рд░ 11 рдХреЗ рд╕рд╛рде рдПрдХ рдЙрджрд╛рд╣рд░рдг рдпрд╣рд╛рдВ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рдерд╛: https://github.com/socketio/socket.io/tree/master/examples/angular-todomvc
рдзрдиреНрдпрд╡рд╛рдж!
рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА
рдореЗрд░рд╛ рдХрд╛рдо рдХреЗрд╡рд▓ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЬреЛрдбрд╝рдХрд░ рд╢реБрд░реВ рд╣реБрдЖ
рдХреЛрдгреАрдп 6.1.0
socket.io- рдХреНрд▓рд╛рдЗрдВрдЯ 2.1.1
рдпрд╣ рдХреЛрдгреАрдп 7.1.x рдореЗрдВ рдЕрдкрдЧреНрд░реЗрдб рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдХрд╛рдо рдХрд░рдирд╛ рдЬрд╛рд░реА рд░рдЦрддрд╛ рд╣реИ