Squashed 'packages/mcp-typescript/' changes from dcc30be..e665be0

e665be0 Merge pull request #14 from modelcontextprotocol/justin/fix-race-condition
be9c1fe Merge branch 'main' into justin/fix-race-condition
36ba802 Merge pull request #17 from modelcontextprotocol/ashwin/capabilities
a1b8886 yarn build
7b718de Report errors when start() is called multiple times
83a43fd Protocol.connect() can automatically call Transport.start()
8d80cc5 Merge branch 'main' into justin/fix-race-condition
bcb4b21 add server capabilities derivation
e9c64fb Update tests and CLI
2b0599e Update server SSE transport
c39f808 Update client transports
87ae7ff Add start() to Transport interface

git-subtree-dir: packages/mcp-typescript
git-subtree-split: e665be068b9d2baa65f37fd7c2f69f68f77e57b9
This commit is contained in:
Ashwin Bhat 2024-10-16 16:12:48 -07:00
commit 23ca80ed66
No known key found for this signature in database

View file

@ -4,9 +4,15 @@ const SUBPROTOCOL = "mcp";
* Client transport for WebSocket: this will connect to a server over the WebSocket protocol.
*/
export class WebSocketClientTransport {
connect(url) {
constructor(url) {
this._url = url;
}
start() {
if (this._socket) {
throw new Error("WebSocketClientTransport already started! If using Client class, note that connect() calls start() automatically.");
}
return new Promise((resolve, reject) => {
this._socket = new WebSocket(url, SUBPROTOCOL);
this._socket = new WebSocket(this._url, SUBPROTOCOL);
this._socket.onerror = (event) => {
var _a;
const error = "error" in event