diff --git a/examples/chat-room/README.md b/examples/chat-room/README.md index 6c973950f..25ae13096 100644 --- a/examples/chat-room/README.md +++ b/examples/chat-room/README.md @@ -32,18 +32,13 @@ npm run dev Open your browser to `http://localhost:3000` to use the web chat interface. #### CLI Interface + Alternatively, use the CLI interface: ```sh npm run dev:cli ``` -Or connect programmatically: - -```sh -tsx src/scripts/connect.ts -``` - ## Features - Real-time messaging with automatic persistence @@ -54,4 +49,4 @@ tsx src/scripts/connect.ts ## License -Apache 2.0 \ No newline at end of file +Apache 2.0 diff --git a/examples/chat-room/package.json b/examples/chat-room/package.json index bdfeda547..ec80f11e0 100644 --- a/examples/chat-room/package.json +++ b/examples/chat-room/package.json @@ -19,16 +19,16 @@ "@vitejs/plugin-react": "^4.2.0", "concurrently": "^8.2.2", "prompts": "^2.4.2", - "rivetkit": "workspace:*", "tsx": "^3.12.7", "typescript": "^5.5.2", "vite": "^5.0.0", - "vitest": "^3.1.1" - }, - "dependencies": { + "vitest": "^3.1.1", "@rivetkit/react": "workspace:*", "react": "^18.2.0", "react-dom": "^18.2.0" }, + "dependencies": { + "rivetkit": "workspace:*" + }, "stableVersion": "0.8.0" } diff --git a/examples/chat-room/src/backend/server.ts b/examples/chat-room/src/backend/server.ts index f20eefd70..b51ac47fe 100644 --- a/examples/chat-room/src/backend/server.ts +++ b/examples/chat-room/src/backend/server.ts @@ -3,5 +3,6 @@ import { registry } from "./registry"; registry.start({ cors: { origin: "http://localhost:5173", + credentials: true, }, }); diff --git a/examples/chat-room/src/frontend/App.tsx b/examples/chat-room/src/frontend/App.tsx index 24c7e0320..99f7d08ed 100644 --- a/examples/chat-room/src/frontend/App.tsx +++ b/examples/chat-room/src/frontend/App.tsx @@ -2,7 +2,7 @@ import { createClient, createRivetKit } from "@rivetkit/react"; import { useEffect, useState } from "react"; import type { Message, registry } from "../backend/registry"; -const client = createClient("http://localhost:8080"); +const client = createClient("http://localhost:6420"); const { useActor } = createRivetKit(client); export function App() { @@ -97,4 +97,4 @@ export function App() { ); -} \ No newline at end of file +} diff --git a/examples/chat-room/src/frontend/main.tsx b/examples/chat-room/src/frontend/main.tsx index 9b08c1764..bd39f29ee 100644 --- a/examples/chat-room/src/frontend/main.tsx +++ b/examples/chat-room/src/frontend/main.tsx @@ -9,4 +9,4 @@ createRoot(root).render( -); \ No newline at end of file +); diff --git a/examples/chat-room/src/scripts/cli.ts b/examples/chat-room/src/scripts/cli.ts index e98ea7e91..7d6763a87 100644 --- a/examples/chat-room/src/scripts/cli.ts +++ b/examples/chat-room/src/scripts/cli.ts @@ -6,7 +6,7 @@ async function main() { const { username, room } = await initPrompt(); // Create type-aware client - const client = createClient("http://localhost:8080"); + const client = createClient("http://localhost:6420"); // connect to chat room const chatRoom = client.chatRoom.getOrCreate([room]).connect(); diff --git a/examples/chat-room/src/scripts/connect.ts b/examples/chat-room/src/scripts/connect.ts deleted file mode 100644 index 3030f68f7..000000000 --- a/examples/chat-room/src/scripts/connect.ts +++ /dev/null @@ -1,30 +0,0 @@ -/// -import { createClient } from "rivetkit/client"; -import type { registry } from "../backend/registry"; - -async function main() { - // Create type-aware client - const client = createClient( - process.env.ENDPOINT ?? "http://localhost:8080", - ); - - // connect to chat room - const chatRoom = client.chatRoom.getOrCreate().connect(); - - // call action to get existing messages - const messages = await chatRoom.getHistory(); - console.log("Messages:", messages); - - // listen for new messages - chatRoom.on("newMessage", (message: any) => - console.log(`Message from ${message.sender}: ${message.text}`), - ); - - // send message to room - await chatRoom.sendMessage("william", "All the world's a stage."); - - // disconnect from actor when finished - await chatRoom.dispose(); -} - -main(); diff --git a/examples/chat-room/vite.config.ts b/examples/chat-room/vite.config.ts index 3e344f34e..a291f2884 100644 --- a/examples/chat-room/vite.config.ts +++ b/examples/chat-room/vite.config.ts @@ -4,4 +4,7 @@ import { defineConfig } from "vite"; export default defineConfig({ plugins: [react()], root: "src/frontend", + server: { + port: 5173, + }, }); diff --git a/packages/cloudflare-workers/src/actor-handler-do.ts b/packages/cloudflare-workers/src/actor-handler-do.ts index 82c8d0545..72e650a4a 100644 --- a/packages/cloudflare-workers/src/actor-handler-do.ts +++ b/packages/cloudflare-workers/src/actor-handler-do.ts @@ -3,8 +3,11 @@ import type { ExecutionContext } from "hono"; import invariant from "invariant"; import type { ActorKey, ActorRouter, Registry, RunConfig } from "rivetkit"; import { createActorRouter, createClientWithDriver } from "rivetkit"; -import type { ActorDriver, ManagerDriver } from "rivetkit/driver-helpers"; -import { serializeEmptyPersistData } from "rivetkit/driver-helpers"; +import type { ActorDriver } from "rivetkit/driver-helpers"; +import { + type ManagerDriver, + serializeEmptyPersistData, +} from "rivetkit/driver-helpers"; import { promiseWithResolvers } from "rivetkit/utils"; import { CloudflareDurableObjectGlobalState, @@ -60,8 +63,7 @@ export function createActorDurableObject( */ return class ActorHandler extends DurableObject - implements ActorHandlerInterface - { + implements ActorHandlerInterface { #initialized?: InitializedData; #initializedPromise?: ReturnType>; diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 1e1b6955e..bfd7a276f 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -171,16 +171,13 @@ importers: examples/chat-room: dependencies: + rivetkit: + specifier: workspace:* + version: link:../../packages/rivetkit + devDependencies: '@rivetkit/react': specifier: workspace:* version: link:../../packages/react - react: - specifier: ^18.3 - version: 18.3.1 - react-dom: - specifier: ^18.2.0 - version: 18.3.1(react@18.3.1) - devDependencies: '@types/node': specifier: ^22.13.9 version: 22.15.32 @@ -202,9 +199,12 @@ importers: prompts: specifier: ^2.4.2 version: 2.4.2 - rivetkit: - specifier: workspace:* - version: link:../../packages/rivetkit + react: + specifier: ^18.3 + version: 18.3.1 + react-dom: + specifier: ^18.2.0 + version: 18.3.1(react@18.3.1) tsx: specifier: ^3.12.7 version: 3.14.0