рдбреЗрдЯрд╛ рд╕реНрд░реЛрдд рд╡рд░реНрддрдорд╛рди рд╕рдордп, рд╕рд░реНрд╡рд░ рдХрд╛ рд╡реЗрдмрд╕реЛрдХреЗрдЯ рдХрдиреЗрдХреНрд╢рди, рдХреАрдмреЛрд░реНрдб рдЗрдирдкреБрдЯ, рдЬрд┐рдпреЛрд▓реЛрдХреЗрд╢рди рдкрд░рд┐рд╡рд░реНрддрди, рдЗрддрд┐рд╣рд╛рд╕ рд░реВрдЯрд┐рдВрдЧ рдкрд░рд┐рд╡рд░реНрддрди рдЖрджрд┐ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред
рдЖрдк рд╕рдордЭ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣ рд╕реЗрдЯрдЕрдк рдФрд░ keyEvent рдХрд╣рд╛рдВ рд╕реЗ рдЖрдпрд╛ рд╣реИ, рдФрд░ рдЗрд╕реЗ рдХреИрд╕реЗ рд▓рд┐рдЦрдирд╛ рд╣реИ рдпрджрд┐ websocket рдпрд╛ рдХреБрдЫ рдФрд░ рд╣реИред
рд╕реЗрдЯрдЕрдк рдФрд░ рдХреАрдЗрд╡реЗрдВрдЯ рдХреБрдВрдЬреА рд╣реИрдВ, рдЕрд╕реНрдерд╛рдпреА рд░реВрдк рд╕реЗ рдмреЗрдХрд╛рд░ рд╣реИрдВ, рдФрд░ рдХреЛрдИ рднреА рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╣реЛ рд╕рдХрддреА рд╣реИред
рджреВрд╕рд░реЗ рд╢рдмреНрджреЛрдВ рдореЗрдВ, рдЗрд╕ рдХреБрдВрдЬреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреЗрд╡рд▓ рдбреЗрд╡рд▓рдкрд░ рдХреЛ рдпрд╣рд╛рдВ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдкреНрд░рдХрд╛рд░ рдХреЗ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдЪрд┐рд╣реНрдирд┐рдд рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рдХреЗрд╡рд▓ рдкреНрд░реЗрд╖рдг рдФрд░ рдЗрддрд┐рд╣рд╛рд╕ рдореЗрдВ рдЧреБрдЬрд░рддрд╛ рд╣реИ, рдФрд░ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдирд┐рдЧрд░рд╛рдиреА рдХреЛрдб рдХреЛ рдирд┐рдЧрд░рд╛рдиреА рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рддреГрддреАрдп-рдкрдХреНрд╖ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред
рдХреНрдпрд╛ рдореЗрд░реА рд╕рдордЭ рд╕рд╣реА рд╣реИ?
рд╣рд╛рдВ, рдпрд╣рд╛рдВ рдХреБрдВрдЬреА/рдорд╛рди рдкреНрд░рд╛рд░реВрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╡рд░реНрддрдорд╛рди рдореЗрдВ, рдпрд╣ рдореБрдЦреНрдп рд░реВрдк рд╕реЗ рдкреНрд░рд╛рд░реВрдк рдХреЛ рдкреНрд░рднрд╛рд╡ рдФрд░ рд░реЗрдбреНрдпреВрд╕рд░ рдХреЗ рдЕрдиреБрд░реВрдк рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИред рдмрд╛рдж рдореЗрдВ, рд╕рджрд╕реНрдпрддрд╛ рд░рджреНрджреАрдХрд░рдг рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рд╕рдорд░реНрдерди рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдФрд░ рдХреБрдВрдЬреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
рдореИрдВ рд╕рдордЭ рдЧрдпрд╛ рдЖрдкрдХрд╛ рдзрдиреНрдпрд╡рд╛рджред
рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореИрдВ рдЗрди рджрд╕реНрддрд╛рд╡реЗрдЬреЛрдВ рдореЗрдВ рдЙрдкрд░реЛрдХреНрдд рдЪрд░реНрдЪрд╛ рдХрд╛ рдЕрд░реНрде рдЬреЛрдбрд╝ рд╕рдХрддрд╛ рд╣реВрдВ, рдЖрдкрдХреЛ рдореЗрд░реЗ рдЬреИрд╕реА рд╣реА рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рдирд╛ рдкрдбрд╝ рд╕рдХрддрд╛ рд╣реИ :)
рд╕рджрд╕реНрдпрддрд╛ рдХреЗрд╡рд▓ рдбреЗрдЯрд╛ рдХреА рд╕рджрд╕реНрдпрддрд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реНрдерд╛рди рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддреА рд╣реИред рдлрд┐рд░ рдкреНрд░реЗрд╖рдг рдФрд░ рдЗрддрд┐рд╣рд╛рд╕ рдкрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рд╕рджрд╕реНрдпрддрд╛ рдпрд╛ рдирд┐рдЧрд░рд╛рдиреА рдХреИрд╕реЗ рдХрд░реЗрдВ, рдЗрд╕реЗ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рддреГрддреАрдп-рдкрдХреНрд╖ рд╡рд░реНрдЧ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред рдХреНрдпрд╛ рд╡рд╣ рд╕рдордЭ рд╣реИ? рдкреНрд░реЗрд╖рдг рд░реЗрдбрдХреНрд╕ рдХреА рджреБрдХрд╛рди рдореЗрдВ рдкреНрд░реЗрд╖рдг рд╣реИ, рдФрд░ рдЗрддрд┐рд╣рд╛рд╕ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛-рд░рд╛рдЙрдЯрд░ рдореЗрдВ рдЗрддрд┐рд╣рд╛рд╕ рд╣реИ, рдХреНрдпрд╛ рдпрд╣ рд╕рдордЭрд╛ рдЬрд╛рддрд╛ рд╣реИ?
@ roc2539 рд╣рд╛рдБред
рдХреНрдпрд╛ рдореИрдВ рд╕рдмреНрд╕рдХреНрд░рд┐рдкреНрд╢рди рдореЗрдВ рд╕реЗрдЯрдЕрдк рдореЗрдВ рд╕реНрдЯреЗрдЯ рдпрд╛ рдкреНрд░реЙрдкреНрд╕ рдХреА рд╕рд╛рдордЧреНрд░реА рдПрдХреНрд╕реЗрд╕ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ?
@gzbigegg рдирд╣реАрдВ, рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХреЛ рдЯреНрд░рд┐рдЧрд░ рдХрд░реЗрдВ рдФрд░ рдкреНрд░рднрд╛рд╡ рдХреЛ рдЗрд╕реЗ рд╕рдВрднрд╛рд▓рдиреЗ рджреЗрдВред
subscriptions: {
setup ({ dispatch }) {
dispatch({ type: 'query' })
}
}
рджреЛ рдкреНрд░рд╢реНрди рд╣реИрдВред рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рдпрд╣ рд╕рд╣реА рд╣реИ рдпрд╛ рдирд╣реАрдВред рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХрд╣рддрд╛ рд╣реИ рдХрд┐ рдПрд▓реНрдо рдХрднреА рднреА рдЙрдирдХреЗ рд╕рдВрдкрд░реНрдХ рдореЗрдВ рдирд╣реАрдВ рд░рд╣рд╛, рдФрд░ рдореИрдВ рд╕рджрд╕реНрдпрддрд╛ рдХреЛ рдмрд╣реБрдд рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдирд╣реАрдВ рд╕рдордЭрддрд╛ред
рдореБрдЭреЗ рдХреБрдЫ рд╕рджрд╕реНрдпрддрд╛ рдЙрджрд╛рд╣рд░рдг рджреЗрдЦрдирд╛ рдЕрдЪреНрдЫрд╛ рд▓рдЧреЗрдЧрд╛ рдЬреИрд╕реЗ websocket
рд╕реЗрдЯрдЕрдк рдореЗрдВ рджреЛ рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЛ рдХреИрд╕реЗ рдбрд┐рд╕реНрдкреИрдЪ рдХрд░реЗрдВ
рд╕рджрд╕реНрдпрддрд╛ рдкрдВрдЬреАрдХрд░рдг @ roc2539 рдореЗрдВ рдХреЙрд▓рдмреИрдХ рдХреЗ рд╕рдордп рдФрд░ рдЗрдВрдЬреЗрдХреНрд╢рди рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреЛрдИ рд╕реНрдкрд╖реНрдЯ рджрд╕реНрддрд╛рд╡реЗрдЬ рдирд╣реАрдВ рд╣реИ
рд╣реИрд╢ рд░реВрдЯ рдореЗрдВ рдмрджрд▓рдиреЗ рдХреЗ рдмрд╛рдж, рд╕реЗрдЯрдЕрдк рдХреАрдмреЛрд░реНрдб рд╕реЗ url рдЗрдирдкреБрдЯ рдХреЗ рдкрд░рд┐рд╡рд░реНрддрди рдХреА рдирд┐рдЧрд░рд╛рдиреА рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рд╣реИред
рд▓реЗрдХрд┐рди рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд╣рд┐рд╕реНрдЯреНрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдареАрдХ рд╣реИред
setup ({ dispatch }) {
console.log('models-app') // цЙЛхКицФ╣хПШurlхЬ░хЭАя╝Мф╕Нф╝Ъш┐ЫцндцЦ╣ц│Х
dispatch({ type: 'query' })
},
рд╕реЙрдХреЗрдЯ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА, рд╕рд┐рд░реНрдл рд╕рдВрджрд░реНрдн рдХреЗ рд▓рд┐рдПред
// model
import * as service from '../services/socket';
subscriptions: {
socket({dispatch}){ // socketчЫ╕хЕ│
return service.listen(data => {
switch (data.type) {
case 'connect':
if (data.state === 'success') {
dispatch({
type: 'connectSuccess'
})
} else {
dispatch({
type: 'connectFail'
})
}
break;
case 'welcome':
dispatch({
type: 'welcome'
});
break;
}
})
}
},
// services
import io from 'socket.io-client';
let socket = '';
export function listen(action) {
if (socket === '') {
try {
socket = io("localhost:3000");
action({
type: 'connect',
state: 'success'
});
} catch (err) {
action({
type: 'connect',
state: 'fail'
});
}
}
socket.on('welcome', () => {
action({
type: 'welcome'
})
})
}
рдореИрдВ рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдХрд┐ рдПрдХ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХреБрдВрдЬреА рдХреЗ рд╕рд╛рде рд╕рджрд╕реНрдпрддрд╛ рдХреЛ рдХреИрд╕реЗ рдЯреНрд░рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЬрд╛рдПред рдореВрд▓ рд░реВрдк рд╕реЗ, рдпрд╣ рд╕рднреА рдПрдХ рдмрд╛рд░ рдкреНрд░рд╛рд░рдВрдн рд╣реЛрдиреЗ рдкрд░ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдЗрд╕рд▓рд┐рдП рдпрд╣ рд╕рджрд╕реНрдпрддрд╛ рдХреЗрд╡рд▓ рдкреНрд░реЗрд╖рдг рдФрд░ рдЗрддрд┐рд╣рд╛рд╕ рдХреЛ рдмрдВрдж рдХрд░рдиреЗ рдХреА рд╕реБрд╡рд┐рдзрд╛ рдкреНрд░рджрд╛рди рдХрд░рддреА рд╣реИ
рд╕рджрд╕реНрдпрддрд╛: {
рд╕реЗрдЯрдЕрдк ({рдкреНрд░реЗрд╖рдг}) {
рдкреНрд░реЗрд╖рдг ({рдкреНрд░рдХрд╛рд░: 'рдХреНрд╡реЗрд░реА'})
}
} рдпрд╣ рдХреЗрд╡рд▓ рдкреНрд░реЗрд╖рдг рдХреНрд░рд┐рдпрд╛ рдХрд╛ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдирд┐рд╖реНрдкрд╛рджрди рд╣реИ, рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕рджрд╕реНрдпрддрд╛ рдХреНрд░рд┐рдпрд╛ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред
рдЕрдЪрд╛рдирдХ рдПрд╣рд╕рд╛рд╕ рд╣реБрдЖ
рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА
рд╕реЙрдХреЗрдЯ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА, рд╕рд┐рд░реНрдл рд╕рдВрджрд░реНрдн рдХреЗ рд▓рд┐рдПред