- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我遵循了 Skygear 手册
https://docs.skygear.io/guides/advanced/server/
并且它启动 skygear-server-darwin-amd64 成功。
所以我尝试运行react-chat-demo
https://github.com/skygear-demo/react-chat-demo
我设置了端点 http://localhost:3000/
运行 npm start 时,我的网络浏览器打开文件:///Users/~/react-chat-demo-master/demo/login.html
我可以注册并登录然后加载了 app.html 但什么也没看到
app.html 是如何工作的?
#####################################################################
server log
DEBU[0057] OPTIONS /auth/signup logger=router
DEBU[0057] ------ Header: ------ logger=router
DEBU[0057] Access-Control-Request-Method: [POST] logger=router
DEBU[0057] Accept: [*/*] logger=router
DEBU[0057] Accept-Language: [ko-KR,ko;q=0.8,en-US;q=0.6,en;q=0.4] logger=router
DEBU[0057] Connection: [keep-alive] logger=router
DEBU[0057] Origin: [null] logger=router
DEBU[0057] User-Agent: [Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36] logger=router
DEBU[0057] Access-Control-Request-Headers: [content-type, x-skygear-access-token, x-skygear-api-key] logger=router
DEBU[0057] Accept-Encoding: [gzip, deflate, sdch, br] logger=router
DEBU[0057] ------ Request: ------ logger=router
DEBU[0057] 0 bytes of request body logger=router
DEBU[0057] CORS Method: POST logger=router
DEBU[0057] CORS Headers: content-type, x-skygear-access-token, x-skygear-api-key logger=router
DEBU[0057] ------ Response: ------ logger=router
DEBU[0057] 0 bytes of response body logger=router
DEBU[0057] POST /auth/signup logger=router
DEBU[0057] ------ Header: ------ logger=router
DEBU[0057] Connection: [keep-alive] logger=router
DEBU[0057] Content-Length: [355] logger=router
DEBU[0057] Accept: [application/json] logger=router
DEBU[0057] Origin: [null] logger=router
DEBU[0057] X-Skygear-Access-Token: [eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJqdGkiOiJlYTYwYTgyZi0yYmU4LTQ4ZGEtYjhiNi01Mjg0NjUwYmM5YjciLCJpYXQiOjE0ODk2NDc3OTIsImlzcyI6Il8iLCJzdWIiOiJmMzM4MjI1OC0xYTFlLTQ4NWYtODFmMy1jOTM5NzM2NWE5NjAifQ.1k0dMAvr4Ird_cQVKzdicv3e4iSi_J1odapBbnLDfh0] logger=router
DEBU[0057] X-Skygear-Api-Key: [changeme] logger=router
DEBU[0057] User-Agent: [Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36] logger=router
DEBU[0057] Content-Type: [application/json] logger=router
DEBU[0057] Accept-Encoding: [gzip, deflate, br] logger=router
DEBU[0057] Accept-Language: [ko-KR,ko;q=0.8,en-US;q=0.6,en;q=0.4] logger=router
DEBU[0057] ------ Request: ------ logger=router
DEBU[0057] {"action":"auth:signup","api_key":"changeme","access_token":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJqdGkiOiJlYTYwYTgyZi0yYmU4LTQ4ZGEtYjhiNi01Mjg0NjUwYmM5YjciLCJpYXQiOjE0ODk2NDc3OTIsImlzcyI6Il8iLCJzdWIiOiJmMzM4MjI1OC0xYTFlLTQ4NWYtODFmMy1jOTM5NzM2NWE5NjAifQ.1k0dMAvr4Ird_cQVKzdicv3e4iSi_J1odapBbnLDfh0","username":"qldrha","email":null,"password":"qldrha"} logger=router
DEBU[0057] Opening DBConn: {pq _ postgresql://postgres:@localhost/postgres?sslmode=disable} logger=preprocessor
DEBU[0057] Get DB OK logger=preprocessor
DEBU[0057] Executed SQL successfully with sql.Queryx args=[] error=<nil> executionCount=1 logger=skydb sql=SELECT id FROM "app__"."_role" WHERE by_default = true
DEBU[0057] 0xc420290500: Beginning transaction logger=skydb
DEBU[0057] 0xc420290500: Done beginning transaction 0xc420223b30 logger=skydb
DEBU[0057] Executed SQL successfully with sql.Exec args=[29b406e5-5780-4d7d-92b7-541aa0a3e608 0xc42016ac10 <nil> [36 50 97 36 49 48 36 71 122 75 80 69 76 68 112 81 56 105 100 85 118 57 65 101 76 122 103 114 101 71 71 109 120 90 68 86 121 121 99 88 114 85 105 68 85 103 119 76 117 121 51 48 80 108 48 115 106 51 78 71] {AuthInfo:map[] Valid:true} 2017-03-16 10:41:05.779255568 +0000 UTC 2017-03-16 10:41:05.810086603 +0000 UTC 2017-03-16 10:41:05.810086603 +0000 UTC] error=<nil> executionCount=2 logger=skydb rowsAffected=1 sql=INSERT INTO "app__"."_user" (id,username,email,password,auth,token_valid_since,last_login_at,last_seen_at) VALUES ($1,$2,$3,$4,$5,$6,$7,$8)
DEBU[0057] UpdateRoles &{29b406e5-5780-4d7d-92b7-541aa0a3e608 qldrha [36 50 97 36 49 48 36 71 122 75 80 69 76 68 112 81 56 105 100 85 118 57 65 101 76 122 103 114 101 71 71 109 120 90 68 86 121 121 99 88 114 85 105 68 85 103 119 76 117 121 51 48 80 108 48 115 106 51 78 71] [] map[] 2017-03-16 10:41:05.779255568 +0000 UTC 2017-03-16 10:41:05.810086603 +0000 UTC 2017-03-16 10:41:05.810086603 +0000 UTC} logger=skydb
DEBU[0057] Executed SQL successfully with sql.Exec args=[29b406e5-5780-4d7d-92b7-541aa0a3e608] error=<nil> executionCount=3 logger=skydb rowsAffected=0 sql=DELETE FROM "app__"."_user_role" WHERE user_id = $1
DEBU[0057] Querying remoteColumnTypes user logger=skydb
DEBU[0057] Executed SQL with sql.QueryRowx args=[user app__] executionCount=4 logger=skydb sql=
SELECT c.oid
FROM pg_catalog.pg_class c
LEFT JOIN pg_catalog.pg_namespace n ON n.oid = c.relnamespace
WHERE c.relname = $1
AND n.nspname = $2
DEBU[0057] Executed SQL successfully with sql.Queryx args=[18085] error=<nil> executionCount=5 logger=skydb sql=
SELECT a.attname,
pg_catalog.format_type(a.atttypid, a.atttypmod)
FROM pg_catalog.pg_attribute a
WHERE a.attrelid = $1 AND a.attnum > 0 AND NOT a.attisdropped
DEBU[0057] Executed SQL successfully with sql.Queryx args=[app__ user] error=<nil> executionCount=6 logger=skydb sql=SELECT kcu.column_name, ccu.table_name FROM information_schema.table_constraints AS tc JOIN information_schema.key_column_usage AS kcu ON tc.constraint_name = kcu.constraint_name JOIN information_schema.constraint_column_usage AS ccu ON ccu.constraint_name = tc.constraint_name WHERE constraint_type = 'FOREIGN KEY' AND tc.table_schema = $1 AND tc.table_name = $2
DEBU[0057] Cache remoteColumnTypes user logger=skydb
DEBU[0057] Executed SQL with sql.QueryRowx args=[ 29b406e5-5780-4d7d-92b7-541aa0a3e608] executionCount=7 logger=skydb sql=SELECT "user"."_updated_at" as "_updated_at", "user"."displayName" as "displayName", "user"."_id" as "_id", "user"."_access" as "_access", "user"."_created_at" as "_created_at", "user"."_updated_by" as "_updated_by", "user"."_database_id" as "_database_id", "user"."_owner_id" as "_owner_id", "user"."_created_by" as "_created_by" FROM "app__"."user" WHERE "user"."_database_id" = $1 AND _id = $2
DEBU[0057] Executed SQL successfully with sql.Queryx args=[user] error=<nil> executionCount=8 logger=skydb sql=SELECT role_id FROM "app__"."_record_creation" JOIN "app__"."_role" ON "app__"."_record_creation".role_id = id WHERE record_type = $1
DEBU[0057] map[] logger=handler
DEBU[0057] Using cached remoteColumnTypes user logger=skydb
DEBU[0057] Using cached remoteColumnTypes user logger=skydb
DEBU[0057] Executed SQL with sql.QueryRowx args=[29b406e5-5780-4d7d-92b7-541aa0a3e608 2017-03-16 10:41:05.926657673 +0000 UTC 29b406e5-5780-4d7d-92b7-541aa0a3e608 [] 29b406e5-5780-4d7d-92b7-541aa0a3e608 29b406e5-5780-4d7d-92b7-541aa0a3e608 2017-03-16 10:41:05.926657673 +0000 UTC] executionCount=9 logger=skydb sql=
WITH updated AS (
UPDATE "app__"."user"
SET ("_updated_at", "_updated_by", "_access") = ($3,$4,$5)
WHERE "_id" = $1 AND "_database_id" = $2
RETURNING *
), inserted AS (
INSERT INTO "app__"."user"
("_id", "_database_id", "_updated_at", "_updated_by", "_access", "_created_by", "_owner_id", "_created_at")
SELECT $1,$2,$3,$4,$5,$6,$7,$8
WHERE NOT EXISTS (SELECT * FROM updated)
RETURNING *
)
SELECT * FROM updated
UNION ALL
SELECT * FROM inserted;
DEBU[0057] 0xc420290500: Committed transaction logger=skydb
INFO[0057] Received a notify logger=skydb pqNotification=&{BePid:601 Channel:record_change Extra:17}
DEBU[0057] ------ Response: ------ logger=router
DEBU[0057] {"result":{"user_id":"29b406e5-5780-4d7d-92b7-541aa0a3e608","username":"qldrha","access_token":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJqdGkiOiI1ZDdlNjlhNS1kNDNjLTRiMzEtYWY1Zi1jY2Y4MmI5YzNlYzgiLCJpYXQiOjE0ODk2NjA4NjUsImlzcyI6Il8iLCJzdWIiOiIyOWI0MDZlNS01NzgwLTRkN2QtOTJiNy01NDFhYTBhM2U2MDgifQ.rWJq27SakW7brHwpiH0ccBk_-2L-hA9NTloiSBbaMOU","last_login_at":"2017-03-16T10:41:05.810086603Z","last_seen_at":"2017-03-16T10:41:05.810086603Z"}}
logger=router
DEBU[0057] Ws error websocket: close 1005 logger=pubsub
DEBU[0057] Close ws reader connection 0xc4202681e0 logger=pubsub
DEBU[0057] Close ws writer goroutine 0xc4202681e0 logger=pubsub
DEBU[0057] GET /_/pubsub?api_key=changeme logger=router
DEBU[0057] ------ Header: ------ logger=router
DEBU[0057] Upgrade: [websocket] logger=router
DEBU[0057] Sec-Websocket-Version: [13] logger=router
DEBU[0057] Accept-Language: [ko-KR,ko;q=0.8,en-US;q=0.6,en;q=0.4] logger=router
DEBU[0057] Sec-Websocket-Extensions: [permessage-deflate; client_max_window_bits] logger=router
DEBU[0057] Cache-Control: [no-cache] logger=router
DEBU[0057] Connection: [Upgrade] logger=router
DEBU[0057] Pragma: [no-cache] logger=router
DEBU[0057] Origin: [file://] logger=router
DEBU[0057] User-Agent: [Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36] logger=router
DEBU[0057] Accept-Encoding: [gzip, deflate, sdch, br] logger=router
DEBU[0057] Sec-Websocket-Key: [1DsSXsgqwkGYp5cA5u7cmQ==] logger=router
DEBU[0057] ------ Request: ------ logger=router
DEBU[0057] 0 bytes of request body logger=router
DEBU[0057] Matched params: [] logger=router
DEBU[0057] ------ Response: ------ logger=router
DEBU[0057] 0 bytes of response body logger=router
DEBU[0057] Waiting ws message 0xc42017b3b0 logger=pubsub
DEBU[0057] OPTIONS /record/save logger=router
DEBU[0057] ------ Header: ------ logger=router
DEBU[0057] Accept-Encoding: [gzip, deflate, sdch, br] logger=router
DEBU[0057] Access-Control-Request-Method: [POST] logger=router
DEBU[0057] Origin: [null] logger=router
DEBU[0057] User-Agent: [Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36] logger=router
DEBU[0057] Access-Control-Request-Headers: [content-type, x-skygear-access-token, x-skygear-api-key] logger=router
DEBU[0057] Accept: [*/*] logger=router
DEBU[0057] Connection: [keep-alive] logger=router
DEBU[0057] Accept-Language: [ko-KR,ko;q=0.8,en-US;q=0.6,en;q=0.4] logger=router
DEBU[0057] ------ Request: ------ logger=router
DEBU[0057] 0 bytes of request body logger=router
DEBU[0057] CORS Method: POST logger=router
DEBU[0057] CORS Headers: content-type, x-skygear-access-token, x-skygear-api-key logger=router
DEBU[0057] ------ Response: ------ logger=router
DEBU[0057] 0 bytes of response body logger=router
DEBU[0057] POST /record/save logger=router
DEBU[0057] ------ Header: ------ logger=router
DEBU[0057] X-Skygear-Access-Token: [eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJqdGkiOiI1ZDdlNjlhNS1kNDNjLTRiMzEtYWY1Zi1jY2Y4MmI5YzNlYzgiLCJpYXQiOjE0ODk2NjA4NjUsImlzcyI6Il8iLCJzdWIiOiIyOWI0MDZlNS01NzgwLTRkN2QtOTJiNy01NDFhYTBhM2U2MDgifQ.rWJq27SakW7brHwpiH0ccBk_-2L-hA9NTloiSBbaMOU] logger=router
DEBU[0057] X-Skygear-Api-Key: [changeme] logger=router
DEBU[0057] User-Agent: [Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36] logger=router
DEBU[0057] Content-Type: [application/json] logger=router
DEBU[0057] Accept-Encoding: [gzip, deflate, br] logger=router
DEBU[0057] Accept-Language: [ko-KR,ko;q=0.8,en-US;q=0.6,en;q=0.4] logger=router
DEBU[0057] Content-Length: [456] logger=router
DEBU[0057] Origin: [null] logger=router
DEBU[0057] Accept: [application/json] logger=router
DEBU[0057] Connection: [keep-alive] logger=router
DEBU[0057] ------ Request: ------ logger=router
DEBU[0057] {"action":"record:save","api_key":"changeme","access_token":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJqdGkiOiI1ZDdlNjlhNS1kNDNjLTRiMzEtYWY1Zi1jY2Y4MmI5YzNlYzgiLCJpYXQiOjE0ODk2NjA4NjUsImlzcyI6Il8iLCJzdWIiOiIyOWI0MDZlNS01NzgwLTRkN2QtOTJiNy01NDFhYTBhM2U2MDgifQ.rWJq27SakW7brHwpiH0ccBk_-2L-hA9NTloiSBbaMOU","database_id":"_public","records":[{"_id":"user/29b406e5-5780-4d7d-92b7-541aa0a3e608","_access":[{"public":true,"level":"read"}],"displayName":"qldrha"}]} logger=router
DEBU[0057] Opening DBConn: {pq _ postgresql://postgres:@localhost/postgres?sslmode=disable} logger=preprocessor
DEBU[0057] Get DB OK logger=preprocessor
WARN[0057] 29b406e5-5780-4d7d-92b7-541aa0a3e608 logger=skydb
DEBU[0057] Executed SQL successfully with sql.Queryx args=[ {"Type":"user"}] error=<nil> executionCount=1 logger=skydb sql=SELECT id, device_id, type, notification_info, query FROM "app__"."_subscription" WHERE user_id = $1 AND query @> $2::jsonb
DEBU[0057] Executed SQL with sql.QueryRowx args=[29b406e5-5780-4d7d-92b7-541aa0a3e608] executionCount=1 logger=skydb sql=SELECT id, username, email, password, auth, token_valid_since, last_login_at, last_seen_at, array_to_json(array_agg(role_id)) AS roles FROM "app__"."_user" LEFT JOIN "app__"."_user_role" ON id = user_id WHERE id = $1 GROUP BY id
DEBU[0057] Working with accessModel RoleBasedAccess logger=handler
DEBU[0057] Querying remoteColumnTypes user logger=skydb
DEBU[0057] Executed SQL with sql.QueryRowx args=[user app__] executionCount=2 logger=skydb sql=
SELECT c.oid
FROM pg_catalog.pg_class c
LEFT JOIN pg_catalog.pg_namespace n ON n.oid = c.relnamespace
WHERE c.relname = $1
AND n.nspname = $2
DEBU[0057] Executed SQL successfully with sql.Queryx args=[18085] error=<nil> executionCount=3 logger=skydb sql=
SELECT a.attname,
pg_catalog.format_type(a.atttypid, a.atttypmod)
FROM pg_catalog.pg_attribute a
WHERE a.attrelid = $1 AND a.attnum > 0 AND NOT a.attisdropped
DEBU[0057] Executed SQL successfully with sql.Queryx args=[app__ user] error=<nil> executionCount=4 logger=skydb sql=SELECT kcu.column_name, ccu.table_name FROM information_schema.table_constraints AS tc JOIN information_schema.key_column_usage AS kcu ON tc.constraint_name = kcu.constraint_name JOIN information_schema.constraint_column_usage AS ccu ON ccu.constraint_name = tc.constraint_name WHERE constraint_type = 'FOREIGN KEY' AND tc.table_schema = $1 AND tc.table_name = $2
DEBU[0057] Cache remoteColumnTypes user logger=skydb
DEBU[0057] Executed SQL with sql.QueryRowx args=[ 29b406e5-5780-4d7d-92b7-541aa0a3e608] executionCount=5 logger=skydb sql=SELECT "user"."_created_by" as "_created_by", "user"."_updated_at" as "_updated_at", "user"."displayName" as "displayName", "user"."_id" as "_id", "user"."_owner_id" as "_owner_id", "user"."_access" as "_access", "user"."_database_id" as "_database_id", "user"."_created_at" as "_created_at", "user"."_updated_by" as "_updated_by" FROM "app__"."user" WHERE "user"."_database_id" = $1 AND _id = $2
DEBU[0057] map[displayName:qldrha] logger=handler
DEBU[0057] Using cached remoteColumnTypes user logger=skydb
DEBU[0057] Using cached remoteColumnTypes user logger=skydb
DEBU[0057] Executed SQL with sql.QueryRowx args=[29b406e5-5780-4d7d-92b7-541aa0a3e608 2017-03-16 10:41:06.019357878 +0000 UTC 29b406e5-5780-4d7d-92b7-541aa0a3e608 qldrha [{Relation: Role: Level:read UserID: Public:true}] 2017-03-16 10:41:05.926658 +0000 UTC 29b406e5-5780-4d7d-92b7-541aa0a3e608 29b406e5-5780-4d7d-92b7-541aa0a3e608] executionCount=6 logger=skydb sql=
WITH updated AS (
UPDATE "app__"."user"
SET ("_updated_at", "_updated_by", "displayName", "_access") = ($3,$4,$5,$6)
WHERE "_id" = $1 AND "_database_id" = $2
RETURNING *
), inserted AS (
INSERT INTO "app__"."user"
("_id", "_database_id", "_updated_at", "_updated_by", "displayName", "_access", "_created_at", "_created_by", "_owner_id")
SELECT $1,$2,$3,$4,$5,$6,$7,$8,$9
WHERE NOT EXISTS (SELECT * FROM updated)
RETURNING *
)
SELECT * FROM updated
UNION ALL
SELECT * FROM inserted;
INFO[0057] Received a notify logger=skydb pqNotification=&{BePid:601 Channel:record_change Extra:18}
DEBU[0057] ------ Response: ------ logger=router
DEBU[0057] {"result":[{"_access":[{"level":"read","public":true}],"_created_at":"2017-03-16T10:41:05.926658Z","_created_by":"29b406e5-5780-4d7d-92b7-541aa0a3e608","_id":"user/29b406e5-5780-4d7d-92b7-541aa0a3e608","_ownerID":"29b406e5-5780-4d7d-92b7-541aa0a3e608","_type":"record","_updated_at":"2017-03-16T10:41:06.019358Z","_updated_by":"29b406e5-5780-4d7d-92b7-541aa0a3e608","displayName":"qldrha"}]}
logger=router
DEBU[0057] Executed SQL successfully with sql.Queryx args=[ {"Type":"user"}] error=<nil> executionCount=1 logger=skydb sql=SELECT id, device_id, type, notification_info, query FROM "app__"."_subscription" WHERE user_id = $1 AND query @> $2::jsonb
DEBU[0057] Ws error websocket: close 1001 logger=pubsub
DEBU[0057] Close ws reader connection 0xc42017aa50 logger=pubsub
DEBU[0057] Close ws writer goroutine 0xc42017aa50 logger=pubsub
DEBU[0057] Ws error websocket: close 1001 logger=pubsub
DEBU[0057] Close ws reader connection 0xc42017b3b0 logger=pubsub
DEBU[0057] Close ws writer goroutine 0xc42017b3b0 logger=pubsub
DEBU[0057] GET /_/pubsub?api_key=changeme logger=router
DEBU[0057] ------ Header: ------ logger=router
DEBU[0057] Origin: [file://] logger=router
DEBU[0057] User-Agent: [Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36] logger=router
DEBU[0057] Accept-Encoding: [gzip, deflate, sdch, br] logger=router
DEBU[0057] Accept-Language: [ko-KR,ko;q=0.8,en-US;q=0.6,en;q=0.4] logger=router
DEBU[0057] Connection: [Upgrade] logger=router
DEBU[0057] Pragma: [no-cache] logger=router
DEBU[0057] Cache-Control: [no-cache] logger=router
DEBU[0057] Upgrade: [websocket] logger=router
DEBU[0057] Sec-Websocket-Version: [13] logger=router
DEBU[0057] Sec-Websocket-Key: [kgfqlbiX8CODkmqyaTnRPA==] logger=router
DEBU[0057] Sec-Websocket-Extensions: [permessage-deflate; client_max_window_bits] logger=router
DEBU[0057] ------ Request: ------ logger=router
DEBU[0057] 0 bytes of request body logger=router
DEBU[0057] Matched params: [] logger=router
DEBU[0057] ------ Response: ------ logger=router
DEBU[0057] 0 bytes of response body logger=router
DEBU[0057] Waiting ws message 0xc4200c2d20 logger=pubsub
DEBU[0057] GET /pubsub?api_key=changeme logger=router
DEBU[0057] ------ Header: ------ logger=router
DEBU[0057] Pragma: [no-cache] logger=router
DEBU[0057] Upgrade: [websocket] logger=router
DEBU[0057] Sec-Websocket-Version: [13] logger=router
DEBU[0057] Accept-Encoding: [gzip, deflate, sdch, br] logger=router
DEBU[0057] Accept-Language: [ko-KR,ko;q=0.8,en-US;q=0.6,en;q=0.4] logger=router
DEBU[0057] Connection: [Upgrade] logger=router
DEBU[0057] Cache-Control: [no-cache] logger=router
DEBU[0057] Origin: [file://] logger=router
DEBU[0057] User-Agent: [Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36] logger=router
DEBU[0057] Sec-Websocket-Key: [mG8XggSpYoOcIOcZ6CByNQ==] logger=router
DEBU[0057] Sec-Websocket-Extensions: [permessage-deflate; client_max_window_bits] logger=router
DEBU[0057] ------ Request: ------ logger=router
DEBU[0057] 0 bytes of request body logger=router
DEBU[0057] Matched params: [] logger=router
DEBU[0057] ------ Response: ------ logger=router
DEBU[0057] 0 bytes of response body logger=router
DEBU[0057] Waiting ws message 0xc4200c2ff0 logger=pubsub
最佳答案
这是因为 https://docs.skygear.io/guides/advanced/server/
上的手册未涵盖安装聊天插件。
您应该能够在 skygear.io 上使用托管版本尝试react-chat-demo
如果您想在自己的计算机上部署,聊天插件源位于 https://github.com/skygeario/chat
从 docker-compose.yml 中读取,您将需要:
a.使用以下环境变量启动 skygear-server:
DATABASE_URL: postgresql://postgres:@db/postgres?sslmode=disable
APP_NAME: my_skygear_app
API_KEY: my_skygear_key
MASTER_KEY: my_master_key
TOKEN_STORE: jwt
TOKEN_STORE_SECRET: my_skygear_jwt_secret
PLUGINS: CHAT
CHAT_TRANSPORT: zmq
CHAT_PATH: chat
CHAT_ARGS: tcp://0.0.0.0:5555
将 CHAT_ARGS 设置为聊天插件的 IP 和端口。
环境变量
DATABASE_URL: postgresql://postgres:@db:5432/postgres?sslmode=disable
PUBSUB_URL: ws://app:3000/pubsub
SKYGEAR_ADDRESS: tcp://app:5555
SKYGEAR_ENDPOINT: http://app:3000
APP_NAME: my_skygear_app
API_KEY: my_skygear_key
MASTER_KEY: my_master_key
TOKEN_STORE_SECRET: my_skygear_jwt_secret
ASSET_STORE_URL_PREFIX: http://localhost:3000/
并在安装 python 模块后运行此命令:
py-skygear chat
关于javascript - skygear/react-chat-demo app.html 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42832570/
就在我放松下来以为我对数组上下文中的指针有一个公平的理解时,我对下面的程序再次感到沮丧。我已经理解了数组 arr,arr 和 &arr 大小相同,但类型不同,但我无法牢牢掌握以下程序的输出。我尝试将其
这个问题在这里已经有了答案: Why whole structure can not be compared in C, yet it can be copied? (6 个答案) 关闭 9 年前。
今天我试图在我的代码中使用系统属性。当我输入 ./gradlew -Dorg.gradle.project.env=demo test 时,虽然我在脚本中成功打印了 env ,但发生了 NullPoi
概要 本节要实现的是多表关联查询的简单demo。场景是根据id查询某商品分类信息,并展示该分类下的商品列表。 1、Mysql测试数据 新建表Category(商品分类)和Product(商品
SpringCloud + Docker 的便利和强大真的超乎想象,我已经入坑了…好了,不说废话,记录一个简单的 Demo 供其他同学排坑。 前言 惯例不能丢,先上源代码:docker-demo
在没介绍正文之前先给大家介绍下数据更新方法支持的连贯操作方法有: 在上一篇文章中我们实现了数据的删除和批量删除,这一篇文章我们将实现数据的更新。 首先依然是预期效果图: 点击修
过滤html标签在php中可以有内置的函数了,但它过滤的太干净了,我们就整理了一下些利用正则来过滤指定html标签的例子,具体如下所示。 采集的时候有时候需要过滤掉多余的标签属性,比如 img标签
UIPickerView平常用的地方好像也不是很多,顶多就是一些需要选择的地方,这次项目需要这一个功能,我就单独写了一个简单的demo,效果图如下: 新增主页面弹出view,在主页面添
项目里面有一个需求,要对sql进行简单的语法分析 为了避免sql里面的字符串和注释对语法分析做干扰,我写了一个java函数,对sql进行修剪,删除里面字符串和注释,用空格代替 周末闲着没事,我用g
今天公司里的实习生跑过来问我一般App上广告的无限滚动是怎么实现的,刚好很久没写博客了,就决定写下了,尽量帮助那些处于刚学iOS的程序猿. 做一个小demo,大概实现效果如下图所示: 基本实
最近项目组同事跟我说遇到一个SQL性能问题,他说全表只有69条记录,客户端执行耗费了两分多钟,很不科学。我帮了分析出了原因并得到解决。下面小编安装类似表结构,构造了一个案例,测试截图如下所示:
新的一年又要到来了,各个大的公司又在这年末为大家送上了新春的祝福,支付宝还是延续了这几年的传统,在年末为大家送上了集五福的活动,为了大家能更快更好的扫出来大大的“福”,今天就带领大家利用python
我已经安装了http://download.jboss.org/jbpm/release/6.4.0.Final/jbpm-6.4.0.Final-installer-full.zip在这里找到htt
1、准备环境 服务器:linux(debian)+nginx+mysql+php 环境 框架:laravel 5.5 (确认能跑通) 需求:每天晚上1点执行定时操作 2、定时任务的步骤
下面通过一个小例子来说明cmake编译一个c++项目,生成可执行文件: 整理目录结构: CMake Lists.txt addlib build main.cpp 电脑上没有tree命
本文实例讲述了php实现基于微信公众平台开发SDK(demo)扩展的方法。分享给大家供大家参考。具体分析如下: 该扩展基于官方的微信公众平台SDK,这里只做了简单地封装,实现了一些基本的功能(如天
验证码不用多说,在 WEB-APP 中一般应用于:登录、注册、买某票、秒杀等场景。大家都接触过~可以说是千奇百怪,各式各样。 DEMO 目标功能 验证码页面输入。 页面更换验证码(异
下拉刷新在越来越多的app中使用,已经形成一种默认的用户习惯,遇到列表显示的内容时,用户已经开始习惯性的拉拉。在交互习惯上已经形成定性。之前在我的文章《ios学习笔记34—egotableviewp
一切尽在代码中,代码附有注释,欢迎大家参考。 ?
我试图找到答案,但没有任何结果。bin/console的一些命令和 ./psh.phar没有描述,所以很难理解它们的用途。 Shopware 6 中是否有从数据库中删除所有演示数据的命令? 最佳答案
我是一名优秀的程序员,十分优秀!