Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[misskey-js] StreamをNodejs環境で扱うことが困難になっている #14847

Closed
1 task
3-x-3 opened this issue Oct 27, 2024 · 1 comment · Fixed by #14850
Closed
1 task

[misskey-js] StreamをNodejs環境で扱うことが困難になっている #14847

3-x-3 opened this issue Oct 27, 2024 · 1 comment · Fixed by #14850
Labels

Comments

@3-x-3
Copy link

3-x-3 commented Oct 27, 2024

💡 Summary

#14277 にて
3d8eda1#diff-e2885eeaffb0662816c98c56cd9f1d9d80060ca1908620f14a8c707b7e2c9661R2969
misskey-jsのStreamのWebSocketの型がWebSocketに限定されている。

このWebsocket型はブラウザで扱う場合のWebSocketの型であり、Node.jsで扱う際にはブラウザのWebSocket型と完全には互換性のない'ws'パッケージでのWebSocketを扱うこととなるがこれではmisskey-jsを利用してNode上でStreamを扱えない

※現段階でのmisskey-jsは(README)[https://github.com/misskey-dev/misskey/blob/develop/packages/misskey-js/README.md]によればNodeでも動作することになっている

🥰 Expected Behavior

Node.js環境でもWebSocketを扱える

🤬 Actual Behavior

TSで扱うと型エラーが発生しそもそも動かない
Image

📝 Steps to Reproduce

  1. node.js環境でmisskey-jsを導入
  2. Misskey.Streamを呼び出す
  • この際、従来であればWebSocketにwsパッケージのWebSocketを渡すことで一応動作していた
  • 現在は動作させられない(型エラーが起こるため)
  • 本来はコンストラクタを渡さなくてもNode環境であればwsのStreamでも動いてほしい

Environment

  • misskey-js: 2024.10.2-alpha.1
  • Node: 20.5.0
  • OS and Architecture Ubuntu 22.04.4 LTS on WSL2

Do you want to address this bug yourself?

  • Yes, I will patch the bug myself and send a pull request
@3-x-3 3-x-3 added the ⚠️bug? This might be a bug label Oct 27, 2024
@3-x-3 3-x-3 changed the title [misskey-js] StreamingにおいてNodejs環境で扱うことが困難になっている [misskey-js] StreamをNodejs環境で扱うことが困難になっている Oct 27, 2024
@tai-cha
Copy link
Contributor

tai-cha commented Oct 27, 2024

以前動作していたのであればこのようにas unknown as globalThis.WebSocketとすれば一応は動くのではないでしょうか?

import WebSocket from "ws";

new Mi.Stream(
	server.origin,
	{token: server.credential},
	{WebSocket: WebSocket as unknown as globalThis.WebSocket},
)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
2 participants