Соединение Node.js и Python с socket.io

Краткий

Я пытаюсь подключить Node.js [клиент] и Python [сервер]. Сервер Python поддерживает только WebSocket, где Node.js socket.io пытается использовать длинный опрос настроек транспорта: [websocket]. после всех настроек я не получаю данных, а node.js socket.io все время пытается повторно подключиться к серверу. .

Требование

Python и Node.js связаны друг с другом через веб-сокет. Где Node.js — клиент, а Python — сервер.

Код

  1. питон

    # IMPORT'S
    import asyncio # core: python async-await library.
    import string # core: python string manipulatation library.
    import json # core: json library.
    import pydash # pip: utility module.
    from starlette.applications import Starlette # pip: http framework.
    from starlette.responses import JSONResponse # pip: http response handler.
    from starlette.websockets import WebSocket # pip: websocket library.
    import uvicorn # pip: server runner.
    
    # SYSTEM IMPORT'S
    from system import Connect # system: load engine connection.
    from www.template import Template # system: route template loader
    
    # ENGINE: STARLETTE
    App = Starlette()
    App.debug = True
    
    # GLOBAL'S
    _port = 8000
    _host = '0.0.0.0'
    
    # HANDLER: APP
    """
    Details: Allow's external connection to interact
    with system core.rightnow socket connection can
    be made.
    """
    class App:
       def __init__(self, scope):
           assert scope['type'] == 'websocket'
           self.scope = scope
    
       async def __call__(self, receive, send):
          # load and accept socket.io connection.
          _WebSocket = WebSocket(self.scope, receive=receive, send=send)
          await _WebSocket.accept()
    
          # local variable's.
          _templateName = _WebSocket.query_params['name']
    
          # only proceed if templateName is defined.
          if _templateName:
             # send json response to client.
             await _WebSocket.send_json({ 'templateReply': 'RecivedData' }, mode= 'binary')
    
        # close socket connection.
        await _WebSocket.close()
    
      # return none. as application is
      # run on socket.
      return None
    
    # SERVER RUN
    if __name__ == '__main__':
      # run server.
      uvicorn.run(App, host= _host, port = _port)
    
  2. Node.js

    // if _user information found than do login verification. else do
    // refresh @Cr for user information.
    // if _BroadCast contains data set.
    let _io = IO.connect('http://localhost:8000', {
      'path': '/chat',
      'transports': ['websocket'],
      'query': {
        'name': 'monk',
        'POST': '[email protected]'
      }
    })
    
    _io.on('connection', async () => {
       console.info('connected to user....') // log: nothing
    })
    _io.on('reconnecting', (__connection) => {
       console.info(__connection) // log: 2, 3 etc....
    })
    
  3. Результат Ответ сокета

Node.js обычно используется как сервер, а не как клиент. Вы используете это? github.com/socketio/socket.io-клиент

yeya 27.02.2019 15:36

Возможный дубликат Клиент Node.js для сервера socket.io

yeya 27.02.2019 15:38

Почему не на стороне клиента? и да, я использую ту же ссылку, которую вы предоставили: 0

Manu Yadav 27.02.2019 15:38

В любом случае - проверьте этот образец ответа, он может помочь вам написать клиент stackoverflow.com/a/35427353/3107689

yeya 27.02.2019 15:38

Почему не на стороне клиента? :(

Manu Yadav 27.02.2019 15:40

Без всякой причины, я просто говорю «обычно». В любом случае вам нужен способ протестировать сервер и клиент с помощью инструмента, который, как вы знаете, уже работает. Отладить будет намного проще.

yeya 27.02.2019 16:48
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
2
6
1 758
0

Другие вопросы по теме