Я подключаюсь к различным реализациям Gremlin, используя библиотеку JavaScript и веб -питания. Я пытаюсь сделать мой код совместимым с различными серверами Gremlin, все поддерживают примерно одну и ту же версию Gremlin.
Я понимаю, приведенный выше MimeType - по умолчанию для TinkerPop.
В некоторых системах, с которыми я тестирую, с типами = false , запросы gremlin приводят к следующей ошибке (которая не присутствует, когда типы = false опущен):
ResponseError: Server error (no request information): Invalid OpProcessor requested [null] (499)
at /dev/node_modules/gremlin/lib/driver/connection.js:260:13
at Array.forEach ()
at Connection._handleMessage (/dev/node_modules/gremlin/lib/driver/connection.js:254:43)
at WebSocket. (/dev/node_modules/gremlin/lib/driver/connection.js:131:43)
at WebSocket.emit (node:events:507:28)
at Receiver.receiverOnMessage (/dev/node_modules/ws/lib/websocket.js:789:20)
at Receiver.emit (node:events:507:28)
at Receiver.dataMessage (/dev/node_modules/ws/lib/receiver.js:413:14)
at Receiver.getData (/dev/node_modules/ws/lib/receiver.js:352:17)
at Receiver.startLoop (/dev/node_modules/ws/lib/receiver.js:138:22) {
statusCode: 499,
statusMessage: 'Invalid OpProcessor requested [null]',
statusAttributes: {}
< /code>
Я хотел бы понять, что делает types = false. Я понимаю, что запросы сопоставлены с различными опкодами для де-протерилизации и оценены. Когда я вошел в gremlin javaScript, я увидел оба (OpCode и Bindings) как неопределенные < /code>, но не могу определить, почему. < /P>
В документации для Graphson3, раздел начинается с: < /p>
версия 3.0. и
формат по умолчанию, когда он не указан в этой версии. Это довольно
, похожее на Graphson 2.0, и в большинстве случаев будет показаться совместимым для
eye, однако существуют некоторые критические различия: < /p>
Graphson 3.0 не имеет возможности быть без типичной. Типы всегда
embedded.
Graphson 2.0 полагаются на типы данных JSON для таких коллекций, как карта и
list. В Graphson 3.0 существует явная типичная поддержка для карты, списка
и установлен, поскольку Gremlin зависит от этих типов довольно конкретными способами, которые
не совместимы с определениями JSON этих коллекций
. В случае списка и набора было важно, чтобы
различать эти два и для карты, необходимо было иметь способность
возвращать экземпляры карты, которые не имели струнных ключей (например,
г.v().out().groupcount()).br /> < /blockquote>
. (Между прочим, та же ошибка возникает, если я переключаю миметип на 'Application/vnd.gremlin-V3.0+JSON; types = false'
Я подключаюсь к различным реализациям Gremlin, используя библиотеку JavaScript и веб -питания. Я пытаюсь сделать мой код совместимым с различными серверами Gremlin, все поддерживают примерно одну и ту же версию Gremlin.[code]driver = new gremlin.driver.Client(`ws://localhost:8182/gremlin`, { traversalsource: 'g', rejectUnauthorized: false, ssl: false, mimeType: 'application/vnd.gremlin-v3.0+json;types=false' } [/code] Я понимаю, приведенный выше MimeType - по умолчанию для TinkerPop. В некоторых системах, с которыми я тестирую, с типами = false , запросы gremlin приводят к следующей ошибке (которая не присутствует, когда типы = false опущен): [code]ResponseError: Server error (no request information): Invalid OpProcessor requested [null] (499) at /dev/node_modules/gremlin/lib/driver/connection.js:260:13 at Array.forEach () at Connection._handleMessage (/dev/node_modules/gremlin/lib/driver/connection.js:254:43) at WebSocket. (/dev/node_modules/gremlin/lib/driver/connection.js:131:43) at WebSocket.emit (node:events:507:28) at Receiver.receiverOnMessage (/dev/node_modules/ws/lib/websocket.js:789:20) at Receiver.emit (node:events:507:28) at Receiver.dataMessage (/dev/node_modules/ws/lib/receiver.js:413:14) at Receiver.getData (/dev/node_modules/ws/lib/receiver.js:352:17) at Receiver.startLoop (/dev/node_modules/ws/lib/receiver.js:138:22) { statusCode: 499, statusMessage: 'Invalid OpProcessor requested [null]', statusAttributes: {} < /code> Я хотел бы понять, что делает types = false. Я понимаю, что запросы сопоставлены с различными опкодами для де-протерилизации и оценены. Когда я вошел в gremlin javaScript, я увидел оба (OpCode и Bindings) как неопределенные < /code>, но не могу определить, почему. < /P> В документации для Graphson3, раздел начинается с: < /p>
версия 3.0. и формат по умолчанию, когда он не указан в этой версии. Это довольно , похожее на Graphson 2.0, и в большинстве случаев будет показаться совместимым для eye, однако существуют некоторые критические различия: < /p> Graphson 3.0 не имеет возможности быть без типичной. Типы всегда embedded. Graphson 2.0 полагаются на типы данных JSON для таких коллекций, как карта и list. В Graphson 3.0 существует явная типичная поддержка для карты, списка и установлен, поскольку Gremlin зависит от этих типов довольно конкретными способами, которые не совместимы с определениями JSON этих коллекций . В случае списка и набора было важно, чтобы различать эти два и для карты, необходимо было иметь способность возвращать экземпляры карты, которые не имели струнных ключей (например, г.v().out().groupcount()).br /> < /blockquote> . (Между прочим, та же ошибка возникает, если я переключаю миметип на 'Application/vnd.gremlin-V3.0+JSON; types = false' [/code])