{{sellerTotalView > 1 ? __("sellers", {number: sellerTotalView}) : __("seller", {number: sellerTotalView}) }}, {{numTotalView > 1 ? __("items", {number: numTotalView}) : __("item", {number: numTotalView}) }}
免運費
Yami

Nickname

請告訴我們怎麼更好地稱呼你

更新你的名字
賬戶 訂單 收藏
{{ inviteNavTitle }}
退出登入

切換配送區域

不同區域的庫存和配送時效可能存在差異。

歷史郵編

{{email ? __('Got it!') : __('Restock Alert')}}

我們將在商品到貨後第一時間通知你。

取消
Yami

京東圖書

Java WebSocket编程 开发、部署和保护动态Web应用

{{buttonTypePin == 3 ? __("Scan to view more PinGo") : __("Scan to start")}}

Java WebSocket编程 开发、部署和保护动态Web应用

{{__(":people-members", {'people': item.limit_people_count})}} {{ itemCurrency }}{{ item.valid_price }} {{ itemCurrency }}{{ item.invalid_price }} {{ itemDiscount }}
後結束
{{ itemCurrency }}{{ item.valid_price }}
{{ itemCurrency }}{{ priceFormat(item.valid_price / item.bundle_specification) }}/{{ item.unit }}
{{ itemDiscount }}
{{ itemCurrency }}{{ item.valid_price }} {{ itemCurrency }}{{ priceFormat(item.valid_price / item.bundle_specification) }}/{{ item.unit }} {{ itemCurrency }}{{ item.invalid_price }} {{itemDiscount}}
{{ itemCurrency }}{{ item.valid_price }}
後結束促銷
後開始秒殺 後結束秒殺
{{ getSeckillDesc(item.seckill_data) }}
{{ __( "Pay with Gift Card to get sale price: :itemCurrency:price", { 'itemCurrency' : itemCurrency, 'price' : (item.giftcard_price ? priceFormat(item.giftcard_price) : '0.00') } ) }} ({{ itemCurrency }}{{ priceFormat(item.giftcard_price / item.bundle_specification) }}/{{ item.unit }}) 詳情
商品有效期

已下架

我們不知道該商品何時或是否會重新有庫存。

當前地址無法配送
已售完

商品描述

展開全部描述
Content Description

精通Java WebSocket应用开发,充分利用最先进的通信技术构建动态企业级Web应用。《Java WebSocket编程 开发、部署和保护动态Web应用》一书由Java WebSocket编程权威专家撰写,提供了实际的开发策略和详尽的示例应用。本书诠释了如何设计客户端/服务器应用、与全双工消息通信协作、建立连接、创建端点、处理路径映射以及保护数据。你也将学到如何加密Web传输并且使用Java WebSocket增强既有应用。
主要内容
●使用Java WebSocket API开发Web应用
●创建和发布注解式端点和编程式端点
●管理WebSocket端点的生命周期事件
●维护端点生命周期中可靠的连接
●管理同步和异步消息通信
●为复杂消息通信定义编码和解码策略
●配置消息通信超时、大小限制和异常
●消息路径映射及将入站URI路由到Web容器
●保护数据、认证用户以及加密连接

Author Description

Danny Coward是Oracle的首席架构师和Web架构师。他是Java EE、Java SE/JavaFX中WebSocket Java API的规范领导者。他在Oracle主导WebSocket工作,他是Java WebSocket编程方面的权威专家。


Catalogue

目 录

第1章 Java WebSocket基本原理 1

1.1 创建第一个WebSocket应用 2

1.1.1 创建WebSocket端点 3

1.1.2 部署端点 5

1.1.3 创建WebSocket客户端 6

1.2 WebSocket端点 9

1.3 编程式端点 10

1.4 深入Echo示例 17

1.4.1 部署阶段 17

1.4.2 接收第一个连接 19

1.4.3 WebSocket消息通信 22

1.5 本章小结 23

第2章 Java WebSocket生命周期 25

2.1 WebSocket协议 26

2.2 Java WebSocket生命周期 27

2.3 Java WebSocket API中的WebSocket生命周期 29

2.3.1 注解式端点事件处理 30

2.3.2 Lifecycle示例 38

2.3.3 编程式端点生命周期 46

2.3.4 实例数目及线程机制 49

2.4 本章小结 51

第3章 消息通信基础 53

3.1 消息通信概述 54

3.1.1 发送消息 54

3.1.2 接收WebSocket消息 61

3.2 DrawingBoard应用 73

3.3 消息通信和线程 94

3.3.1 WebSocket端点线程和消息通信 94

3.3.2 线程与编码器和解码器的生命周期 95

3.4 本章小结 95

第4章 配置与Session 97

4.1 Session状态和逻辑端点状态 98

4.2 Chat示例 99

4.3 配置端点:ClientEndpointConfig和

ServerEndpointConfig 111

4.3.1 提供和访问端点配置信息 111

4.3.2 配置选项介绍 113

4.3.3 WebSocket子协议和WebSocket扩展 115

4.4 WebSocket Session 123

4.5 本章小结 128

第5章 高级消息处理 129

5.1 检查连接:Ping和Pong 130

5.2 异步发送WebSocket消息 132

5.2.1 通过Future发送WebSocket消息 133

5.2.2 通过Handler发送WebSocket消息 135

5.2.3 何时通过Future发送以及何时通过Handler发送 136

5.2.4 异步发送超时 137

5.3 消息批处理 138

5.4 缓冲、消息分片和数据帧 140

5.5 保证消息传递 142

5.6 发送消息API总结 143

5.7 MessageModes应用 144

5.7.1 MessageModes应用概述 145

5.7.2 查看MessageModes应用的代码 147

5.7.3 MessageModes应用中需要注意的事情 155

5.8 本章小结 158

第6章 WebSocket路径映射 159

6.1 URI术语 160

6.2 WebSocket路径映射 161

6.2.1 精确URI映射 161

6.2.2 URI模板路径 164

6.2.3 URI模板匹配相关的API 167

6.2.4 在运行时访问路径信息 173

6.2.5 查询字符串和请求参数 174

6.2.6 匹配优先级 177

6.3 Portfolio应用 180

6.4 查询字符串、路径参数与WebSocket消息 186

6.5 WebSocket路径映射API总结 188

6.6 本章小结 189

第7章 保护WebSocket服务器端点 191

7.1 安全的概念 192

7.2 Java WebSocket API安全 193

7.2.1 认证 194

7.2.2 授权 199

7.2.3 私有通信 204

7.2.4 Java WebSocket安全API 207

7.3 Stock Account应用 209

7.4 本章小结 217

第8章 Java EE平台中的WebSocket 219

8.1 Java EE平台中Java WebSocket的角色 220

8.2 共享Web应用状态 222

8.2.1 HttpSession与WebSocket Session的关联 224

8.2.2 HttpSession示例 225

8.3 WebSocket端点使用EJB 230

8.4 新版Chat示例 235

8.5 本章小结 240


Introduction

前 言

对于Web开发人员迅速发展的工具箱而言,WebSocket协议是一种新的网络协议。它除了作为HTML 5的核心技术外,还被从桌面到平板电脑和智能手机的所有主流浏览器迅速采用,不过为什么Web开发人员还要关心另一种网络技术?

长轮询

在2000年之前,全世界的多数主流公司都使用Web。在发展中国家,个人电脑的革命使得大部分家庭都至少通过一个通道接入互联网。企业迅速地在互联网上建立其Web站点,作为一种展示产品和服务的手段,并且作为交付这些产品和服务的一个日益增长的渠道。Web的基本技术(例如HTTP、HTML和JavaScript)推动了人们如何与其他人、其学校和其工作地点交互,如何规划假期,甚至如何购买生活用品的革命。

Web网站从静态和无趣的目录式风格不断发展,开发人员找到了新方法使得Web网站更加具有交互性。他们指望在合适的时候通过为浏览者注入有趣的信息并在必要时对页面中的信息进行更新来为Web网站添加活力。然而开发人员发现,基本的HTTP及其标记式技术存在着限制。开发人员需要更新股票报价、最新出价、登录到同一网站的当前好友列表、新的处理价以及游戏结果。同时他们也需要在不依赖用户的持续交互的情况下完成这些事情。他们需要从Web服务器端发起数据更新,保持Web网站更新、更迷人、更有趣。他们需要Web网站访问者转变为其渠道的一个观察者,并且他们需要访问者为了获取推送给他们的信息做尽可能少的事情。

在之后的几年中,开发人员通过各种非正规手段来完成更新一个网站最新的各种类型的信息到所有当前访问者的任务。最明显的手段是通过浏览器向服务器轮询更新。开发人员将一小段JavaScript嵌入相关的Web页面中,强迫浏览器以预定的间隔周期刷新整个页面。无论获取的数据是否需要刷新,此方法都将刷新所有的数据。即使除去获取非必需数据之外,此方法的网络延迟也是比较明显的,所以其用户体验比较糟糕。

稍微复杂一些的处理方式是使用HTTP Keep Alive机制。在这种机制中,Web页面中的JavaScript代码将保持打开一个长生命周期的HTTP连接,如同一个持续不断的软件下载,它将定期地使用新信息进行更新。关于浏览器和服务器应保持连接打开多久方面的巨大差异导致了大量问题。一般情况下,客户端的浏览器将需要频繁地重新打开连接,而无论其是否从服务器获取数据。

随着开发人员接触这些技术,开发框架(例如Comet和AJAX)逐步开始支持并包含这些基本技术。在某种程度上,它们可以隐藏这些基本技术的一些不足。然而,有两个基础问题即使是最好的实现也不能克服。首先,HTTP是一个发送简单信息的昂贵的网络协议。仅仅请求简单的股票报价更新,连接上下文在每次请求中都会被重新调用:例如限定客户端和服务器平台的所有头信息、认证属性、负载描述等。其次,更糟糕的是,无论服务器是否有新的信息传送,都需要建立昂贵的连接。

WebSocket的引入

2009年,WebSocket的引入工作始于一项允许客户端与服务器建立一个轻量级的连接,并允许双向通信和一个轻量级的内容模型的技术。服务器能够仅在必要时将数据推送到已连接的客户端。一旦连接建立后,在每次发送消息时无须重新创建连接上下文,客户端和服务器都将有办法发送简单信息。

不必要的更新的日子即将结束。

为了理解轮询方式如何浪费网络资源,考虑一个拍卖网站。物品可以发布在网站上,在定义的时间段内,用户可以对物品进行投标,在投标时间结束后,物品被卖给出价最高的用户。在拍卖的整个过程中,任意访问投标页面的用户都能够看到当前的出价并使用此信息来决定更高的出价。若网站提供一个极其令人满意的物品来拍卖(一个稍微使用过的iPod,毕竟它是2003年的产品),同时此物品的拍卖时间仅仅只有一个小时。假设当这个iPod有新的出价时,网站需要仅仅传送一个简短消息,包含新的价格以及可能的一些附加信息(例如,竞标者的线上名称)。我们估计这些信息总是符合64个字节。若考虑到所有已登录的用户,为了获取新的信息,一些Cookie信息需要在HTTP请求中传送。连同内容类型头、可能两三个特定于应用的头、内容长度、浏览器ID等一起,我们估计头信息大约为512字节。现在假设平均有100个用户登录到此网站,在拍卖过程中平均每30秒有一个新的出价。假设出价的频率并不是平均分布的;在某一时刻,出价也许相隔几秒钟(接近于拍卖时间的结束),而在平时(拍卖时间开始)出价可能相隔几分钟。竞标者将希望最近价格信息一直可用,所以他将谨慎地每两秒钟刷新一次价格;否则,因为在竞标者获取更新前另一个出价已完成,当出价不被通过时,竞标者会变得失意。下面将为了获取更新发送的所有数据进行合计:

平均每分钟30次更新,总计60分钟 = 1800次更新

每次更新带来大约512字节的头信息

发送和接收的头信息总计为:

1800 × 512字节 = 921 600字节 = 900KB

现在,若每次更新包含64字节。同时在此拍卖中,假设有120次出价。因此所有更新信息为:120 × 64字节 = 7.5KB。

因此,有用数据与重复数据的粗略的效率比计算是7.5 / 900 = 0.8%。

这并不是一个理想的分数,并且在更长时间的拍卖下,我们甚至不知道此效率比是如何降低的。

WebSocket旨在通过仅在建立连接时发送上下文信息,并且在连接建立后允许连接的两端在携带着极少的标识信息的上下文信息的情况下发送消息(即使是同时发送)来显著增加这种类型的网络效率。

这样,连接到Web服务器的Web页面能够仅在服务器决定它们需要更新时才接收更新。同时当发送此更新时,它不需要使用关于连接的大负载的上下文信息来使得消息的负荷太重。

WebSocket协议介绍

WebSocket协议是一个网络协议,允许两个相连的端在一个单一TCP连接上进行全双工消息通信。对WebSocket的一个合适的类比是打电话。当打电话时,你通过拨号初始化一个电话呼叫。如果你尝试呼叫的人通过拿起话筒接受了呼叫,连接就已建立。当连接活跃时,如果乐意,双方可以同时说话(虽然并不推荐此种自由交谈),同时即使在说话时双方也都可以听到正在说些什么。这就是全双工通信的含义所在。不管是否有人在讲话,连接一直保持活跃,直到双方中的一方决定挂断电话。

在WebSocket的场景中,连接通过HTTP和WebSocket端点交互的方式建立。连接的发起者发送一个专门制定的HTTP请求,其中包含其希望连接的WebSocket端点的URL。它开始活动并被称为打开阶段握手。如果服务器愿意接受连接,服务器制定一个称为打开阶段握手响应的特殊的HTTP响应并将其发送回客户端。此时,TCP连接可能已经建立,能够保证WebSocket消息的往返传递。连接将一直保持活跃直到任意一方决定终止连接,或者是某些外部因素导致连接关闭(例如,非活跃期太长导致超时或者物理网络的问题)。

尽管没有任何特定的协议需要部署设置,WebSocket主要用来作为托管在Web服务器上的Web应用和浏览器客户端之间的通信机制。同样,WebSocket连接可以在网络间的任意两端建立,而不必是浏览器和Web服务器上。然而,由于技术的起源,WebSocket技术最直接的机会是为静态Web站点带来活力,并且能够很容易地通过实时数据和活动来增强Web网站和Web应用。

在设置中,存在于浏览器中的WebSocket是使用已经被W3C标准化的称为JavaScript WebSocket API的一个JavaScript API创建的。存在于托管在Web网站的Web服务器上的WebSocket可以通过多种语言来开发。WebSocket的普及如此突然,以至于多种不同语言和Web平台都开始支持它。特别是,Java平台已经快速建立了对WebSocket的支持。本书的主要关注点是探索这个新的Java API的基础设施,尽管一些示例将依赖于那些使用JavaScript API来支持WebSocket的代码。

Java Web Socket API是最近的Java EE 7平台的核心特性,并且任何已经熟悉用其他Java技术或者基于Java的技术来构建Web应用(例如Java Servlet、JSP、JavaServer Faces或者与这些技术相关的任何其他技术)的Web程序员应该熟悉Java平台中的WebSocket并且会考虑通过引入此技术为现有或者未来的应用带来新鲜的和现代的感觉。通过本书,你将学习如何编写WebSocket应用。还将学习Java WebSocket API的所有主要设施,包括WebSocket应用可用的配置选项和多种消息模式、可以在何处存储应用状态、如何配置WebSocket使得它仅可以被安全地访问,以及如何将WebSocket集成到Java EE应用中。你在本书中每一章所学习的知识都将通过示例应用来演示。

本书共包含8章内容。

第1章:Java WebSocket基本原理

该章深入介绍了第一个WebSocket应用:Echo应用。虽然比较简单,但是介绍了Java WebSocket API的主要特性,从而形成了本书中其他章节的基础。

第2章:Java WebSocket生命周期

该章介绍了在WebSocket应用中创建的主要组件——WebSocket端点——的生命周期。此生命周期定义了一个框架,通过此框架可以管理WebSocket端点使用的资源,并且最重要的是定义了如何拦截WebSocket消息。此生命周期通过Lifecycle应用来举例说明。此示例为用户展示了一系列的交通信号灯,以便强调WebSocket端点生命期中的关键阶段。

第3章:消息通信基础

该章使用团体合作绘图应用作为其示例应用,介绍了Web应用中发送和接收消息的基本方面。此示例使用Java应用作为客户端,所以该章也同样展示了Java WebSocket API作为客户端的用法。

第4章:配置与Session

该章阐述了Java WebSocket API中的两个最重要的对象:WebSocket会话对象和端点配置对象。其中前者表示一个和WebSocket对等端的会话,后者保存端点的配置信息。在一个在线聊天的示例应用中,我们使用这些对象说明其特性。

第5章:高级消息处理

该章详细介绍了开发人员用于发送和接收WebSocket消息的所有可用选项。我们以第3章为基础介绍了一些高级话题,例如消息编码和解码策略、同步和异步消息模式。该章中的示例应用使用一个用户界面来阐明API中可用的消息选项。

第6章:WebSocket路径映射

该章覆盖了路径映射的9条规则,讲解了Java WebSocket API中将WebSocket端点发布到一个URI使得对等节点能够连接上的所有可用选项。该章使用一个简单的股票投资组合示例说明精确路径匹配、模板映射、查询字符串等技术,并且讨论了你可能选择某种技术而非另一种技术的各种情况。


第7章:保护WebSocket服务器端点

该章介绍了如何将对WebSocket端点的访问限制为仅是Web应用的某种用户,还介绍了如何确保WebSocket端点间的通信保持为私有。我们回顾了股票投资组合应用,使用安全技术来保护此应用并且使之个性化。

第8章:Java EE平台中的WebSocket

该章首先介绍如何将WebSocket端点集成到大规模的Java EE应用中。该章改进了第4章中的聊天应用,从而利用Java EE平台中的两个关键组件:Java Servlet和EJB,提供了一些在WebSocket端点和其他Java Web组件之间,以及和企业JavaBean间共享应用信息的方法。

目标读者对象

本书适合于如下读者:

希望为Web应用增加交互特性的Web开发人员

希望和WebSocket服务器应用交互的富客户端应用开发人员

有兴趣为支持HTML5的浏览器开发应用的Java EE开发人员

本书假设你具备一些Java编程语言的运用知识、一些Java SE平台的经验和一些JavaScript编程语言的知识。此外,尽管不是必要的,但具备一些Web应用的开发经验可能是有用的。

获取示例应用

所有的示例应用代码都可以从Oracle Press网站www. OraclePressBooks.com下载。文件包含在一个压缩文件中。一旦下载了此压缩文件,就需要解压其内容。示例运行于Glassfish 4.0应用服务器上。Glassfish 4.0可以从https://glassfish.java.net/免费下载,并且可以使用NetBeans IDE进行构建。NetBeans IDE可以从https://netbeans.org/免费下载。

我希望本书能够激发你使用前所未有的想法来编写应用!


規格參數

品牌 京東圖書
品牌屬地 China

免責聲明

產品價格、包裝、規格等資訊如有調整,恕不另行通知。我們盡量做到及時更新產品資訊,但請以收到實物為準。使用產品前,請始終閱讀產品隨附的標籤、警告及說明。

查看詳情
加入收藏
{{ $isZh ? coupon.coupon_name_sub : coupon.coupon_ename_sub | formatCurrency }}
{{__("Buy Directly")}} {{ itemCurrency }}{{ item.directly_price }}
數量
{{ quantity }}
{{ instockMsg }}
{{ limitText }}
{{buttonTypePin == 3 ? __("Scan to view more PinGo") : __("Scan to start")}}
由 JD@CHINA 銷售
送至
{{ __("Ship to United States only") }}
滿69免運費
正品保證

已加入購物車

繼續逛逛

為你推薦

{{ item.brand_name }}

{{ item.item_name }}

{{ item.currency }}{{ item.market_price }}

{{ item.currency }}{{ item.unit_price }}

{{ item.currency }}{{ item.unit_price }}

優惠券

{{ coupon.coupon_name_new | formatCurrency }}
領取 已領取 已領完
{{ getCouponDescStr(coupon) }}
{{ coupon.use_time_desc }}
即將過期: {{ formatTime(coupon.use_end_time) }}

分享給好友

取消

亞米禮卡專享價

使用禮卡支付即可獲得禮卡專享價

規則說明

禮卡專享價是部分商品擁有的特殊優惠價格;

購買禮卡專享價商品時,若在結算時使用電子禮卡抵扣支付,且禮卡餘額足夠支付訂單中所有禮卡專享價商品的專享價總和,則可以啟用禮卡專享價;

不使用禮卡支付,或禮卡餘額不滿足上一條所述要求時,將無法啟用禮卡專享價,按照普通售價計算,但您仍然可以購買這些商品;

在購買禮卡專享價商品時,若餘額不足,可以在購物車或結算頁中點擊“充值”按鈕對禮卡進行購買和充值;

商品若擁有禮卡專享價,會顯示“專享”的特殊價格標記;

如有疑問,請隨時聯繫客服;

禮卡專享價相關規則最終解釋權歸亞米所有。

由 亞米 銷售

服務保障

Yami 滿$49免運費
Yami 無憂退換
Yami 從美國出貨

配送資訊

  • 美國

    標準配送 $5.99(不含阿拉斯加,夏威夷),最終價滿$49免運費

    本地配送$5.99(加州,紐約州,新澤西,麻省和賓夕法尼亞,以上州部分地區);最終價滿$49免運費

    兩日達(含阿拉斯加夏威夷)運費19.99美元起

退換政策

亞米網希望為我們的客戶提供最優秀的售後服務,讓所有人都能放心在亞米購物。亞米自營商品在滿足退換貨條件的情況下,可在收到包裹的30天之內退換商品(食品因商品質量問題7天內可退換;為了確保每位客戶都能獲得安全和高質量的商品,對於美妝類產品,一經開封或使用即不提供退款或退貨服務,質量問題除外;其他特殊商品需聯繫客服諮詢)。
感謝您的理解和支持。

查看詳情

由 亞米 銷售

亞米電子禮品卡使用規則

若購買時選擇自動儲值,訂單完成後禮品卡將自動儲值至您的帳戶;

若購買時選擇發送郵件,訂單完成後系統將自動發送卡號和密碼到您填寫的郵箱;

寄送郵件時,任何使用者均可使用郵件中的卡號密碼進行禮卡儲值,請妥善保管郵件資訊。

如接收郵件遇到問題,請聯絡客服處理;

發送郵件時,若禮卡沒有被兌換,可以補發郵件。若已經被其他用戶兌換,無法補償;

亞米網電子禮卡可用於購買自營或第三方商品;

亞米網電子禮卡沒有有效期限限制,長期有效;

亞米網電子禮卡的金額,可分多次使用;

亞米網電子禮卡業務規則,最終解釋權歸亞米網所有。

退換政策

已消費的電子禮卡不支持退款。

JD@CHINA 銷售

服務保障

Yami 滿$49免運費
Yami 最優售後
Yami 美國本土出貨

配送資訊

  • 美國

    標準配送 $5.99(不含阿拉斯加,夏威夷),最終價滿$49免運費

    本地配送$5.99(加州,紐約州,新澤西,麻省和賓夕法尼亞,以上州部分地區);最終價滿$49免運費

    兩日達(含阿拉斯加夏威夷)運費19.99美元起

退換政策

提供30天內退還保障。產品需全新未使用原包裝內,並附有購買憑證。產品品質問題、或錯發漏發等,由商家造成的失誤,將進行補發,或退款處理。其它原因需退貨費用由客戶自行承擔。

由 JD@CHINA 銷售

服務保障

Yami 跨店滿$69免運費
Yami 30天退換保障

亞米-中國集運倉

由亞米從中國精選並集合各大優秀店舖的商品至亞米中國整合中心,合併包裹後將一次合包跨國郵寄至您的地址。跨店包郵門檻低至$69。您將在多商家集合提供的廣泛選購商品中選購商品,輕鬆享有跨店鋪包郵後的低郵資。

退換政策

提供30天內退換保障。產品需在全新未使用的原包裝內,並附有購買憑證。產品品質問題、錯發、或漏發等商家造成的失誤,將進行退款處理。其它原因造成的退換貨郵費客戶將需要自行承擔。由於所有商品均長途跋涉,偶有簡易外包壓磨等但不涉及內部品質問題者,不予退換。

配送資訊

亞米中國集運 Consolidated Shipping 運費$9.99(訂單滿$69 包郵)

下單後2個工作天中國商家出貨,所有包裹抵達亞米中國整合中心(除特別情況及中國境內個別法定假日外)會合併包裹後透過UPS發往美國。 UPS從中國出貨後到美國境內的平均時間為10個工作天左右,可隨時根據直發單號追蹤查詢。受疫情影響,目前物流可能延遲5天左右。包裹需要客人簽收。如未簽收,客人須承擔包裹遺失風險。

由 JD@CHINA 銷售

服務保障

滿69免運費
正品保證

配送資訊

Yami Consolidated Shipping 運費$9.99(訂單滿$69包郵)


Seller will ship the orders within 1-2 business days. The logistics time limit is expected to be 7-15 working days. In case of customs clearance, the delivery time will be extended by 3-7 days. The final receipt date is subject to the information of the postal company.

積分規則

不參加任何折扣活動以及亞米會員積分制度。

退換政策

提供30天內退還保障。產品需全新未使用原包裝內,並附有購買憑證。產品品質問題、或錯發漏發等,由商家造成的失誤,將進行補發,或退款處理。其它原因需退貨費用由客戶自行承擔。

Yami

下載亞米應用

返回頂部

為您推薦

品牌故事

京東圖書

为您推荐

Yami
欣葉
2种选择
欣叶 御大福 芋头麻薯 180g

周销量 600+

$1.66 $1.99 83折
Yami
欣葉
2种选择
欣叶 御大福 芋头麻薯 180g

周销量 600+

$1.66 $1.99 83折
Yami
欣葉
2种选择
欣叶 御大福 芋头麻薯 180g

周销量 600+

$1.66 $1.99 83折
Yami
欣葉
2种选择
欣叶 御大福 芋头麻薯 180g

周销量 600+

$1.66 $1.99 83折
Yami
欣葉
2种选择
欣叶 御大福 芋头麻薯 180g

周销量 600+

$1.66 $1.99 83折
Yami
欣葉
2种选择
欣叶 御大福 芋头麻薯 180g

周销量 600+

$1.66 $1.99 83折

評論{{'('+ commentList.posts_count + ')'}}

分享您的感受,幫助更多用戶做出選擇。

撰寫評論
{{ totalRating }} 撰寫評論
  • {{i}}星

    {{i}} 星

    {{ parseInt(commentRatingList[i]) }}%

Yami Yami
{{ comment.user_name }}

{{ showTranslate(comment) }}收起

{{ strLimit(comment,800) }}查看全部

Show Original

{{ comment.content }}

Yami
查看更多

{{ formatTime(comment.in_dtm) }} 已購買 {{groupData}}

{{ comment.likes_count }} {{ comment.likes_count }} {{ comment.reply_count }} {{comment.in_user==uid ? __('Delete') : __('Report')}}
Yami Yami
{{ comment.user_name }}

{{ showTranslate(comment) }}收起

{{ strLimit(comment,800) }}查看全部

Show Original

{{ comment.content }}

Yami
查看更多

{{ formatTime(comment.in_dtm) }} 已購買 {{groupData}}

{{ comment.likes_count }} {{ comment.likes_count }} {{ comment.reply_count }} {{comment.in_user==uid ? __('Delete') : __('Report')}}

暫無符合條件的評論~

評論詳情

Yami Yami

{{ showTranslate(commentDetails) }}收起

{{ strLimit(commentDetails,800) }}查看全部

Show Original

{{ commentDetails.content }}

Yami
查看更多

{{ formatTime(commentDetails.in_dtm) }} 已購買 {{groupData}}

{{ commentDetails.likes_count }} {{ commentDetails.likes_count }} {{ commentDetails.reply_count }} {{commentDetails.in_user==uid ? __('Delete') : __('Report')}}

請輸入內容

回覆{{'(' + replyList.length + ')'}}

Yami Yami

{{ showTranslate(reply) }}收起

{{ strLimit(reply,800) }}查看全部

Show Original

{{ reply.reply_content }}

{{ formatTime(reply.reply_in_dtm) }}

{{ reply.reply_likes_count }} {{ reply.reply_likes_count }} {{ reply.reply_reply_count }} {{reply.reply_in_user==uid ? __('Delete') : __('Report')}}

請輸入內容

取消

這是到目前為止的所有評論!

發表評論
商品評分

請輸入評論

  • 一個好的暱稱,會讓你的評論更受歡迎!
  • 修改了這裡的暱稱,個人資料中的暱稱也將被修改。
感謝你的評論
你的好評可以幫助我們的社區發現更好的亞洲商品。

舉報

取消

確認刪除該評論嗎?

取消

歷史瀏覽

品牌故事

京東圖書