Socket.io-client: рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд╕реЙрдХреЗрдЯ.рдЖрдИрдУ-рдХреНрд▓рд╛рдЗрдВрдЯ рдирд╡реАрдирддрдо рдХреЛрдгреАрдп 6 рдХреЗ рд╕рд╛рде рд╕рдВрдЧрдд рдирд╣реАрдВ рд╣реИ

рдХреЛ рдирд┐рд░реНрдорд┐рдд 13 рдордИ 2018  ┬╖  16рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: socketio/socket.io-client

рдореЗрдВ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ:

  • [x] рдмрдЧ рдХреА рд░рд┐рдкреЛрд░реНрдЯ рдХрд░реЗрдВ - рд╣рд▓, рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рдХреЗ рд▓рд┐рдП рдЕрдВрддрд┐рдо рджреЛ рд▓рд╛рдЗрдиреЗрдВ рджреЗрдЦреЗрдВ

рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд╕реЙрдХреЗрдЯ.-рдХреНрд▓рд╛рдЗрдВрдЯ рдирд╡реАрдирддрдо рдХреЛрдгреАрдп 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 рдХреЗ рд▓рд┐рдП

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рдореЗрд░рд╛ рдХрд╛рдо рдХреЗрд╡рд▓ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЬреЛрдбрд╝рдХрд░ рд╢реБрд░реВ рд╣реБрдЖ

polyfills.ts рдЬреЛрдбрд╝ рдХреЗ рдЕрдВрджрд░:

(window as any).global = window;

рдХреЛрдгреАрдп 6.1.0
socket.io- рдХреНрд▓рд╛рдЗрдВрдЯ 2.1.1

рдпрд╣ рдХреЛрдгреАрдп 7.1.x рдореЗрдВ рдЕрдкрдЧреНрд░реЗрдб рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдХрд╛рдо рдХрд░рдирд╛ рдЬрд╛рд░реА рд░рдЦрддрд╛ рд╣реИ

рд╕рднреА 16 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдЗрд╕ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рдФрд░ рдЗрд╕рдХреЗ рдЖрд╢реНрд░рд┐рддреЛрдВ рдореЗрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХрдИ 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 рдСрдмреНрдЬреЗрдХреНрдЯ рдХрд╛ рдХреЛрдИ рд╕рдВрджрд░реНрдн рдирд╣реАрдВ рд╣реИред

рд╕рдВрдмрдВрдзрд┐рдд рд╕рдВрдЪрд╛рд░:

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛: рдПрдВрдЧреБрд▓рд░ 11 рдХреЗ рд╕рд╛рде рдПрдХ рдЙрджрд╛рд╣рд░рдг рдпрд╣рд╛рдВ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рдерд╛: https://github.com/socketio/socket.io/tree/master/examples/angular-todomvc

рдзрдиреНрдпрд╡рд╛рдж!

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

BorntraegerMarc picture BorntraegerMarc  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

exilonX picture exilonX  ┬╖  7рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

newpanjing picture newpanjing  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

ledmago picture ledmago  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

david-fong picture david-fong  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ